지금까지는 두가지 방식으로 Configuration 파일을 불러오는 작업을 했습니다. 그 방법으로는 Local에서 불러오는 방식과 Git에서 불러오는 방식으로 나뉘어져 있었어요. 이번에는 해당 방식들과는 조금 다르게 Native에서 불러오는 방식을 보려고 합니다. #시작하기에 앞서서... Native 방식의 장점이 어떤걸까요? Native방식을 채택하면, 따로 커밋하는 작업을 하지 않아도 됩니다. Local과 Git을 활용하는 방식모두 파일 등록 후 Commit작업을 거쳤지만, Native 방식은 File을 직접 참조하기 때문에 이런 과정을 생략 할 수 있어요. 아주 편리한 방식이지만, 깃에 등록을 안하기 때문에 협업시에는 오히려 불편 할 수도 있다는 점이 단점이겠네요. #Native File Repos..
그동안 Actuator를 활용해서 Refresh를 통해서 변경된 서버설정값을 가져갔습니다. 물론 이용안하는 것보다는 편하지만, 포스팅을 따라하셨던 분들이라면, 지속적으로 Refresh하는 과정이 번거롭다는 생각이 드셨을 거에요. 이러한 문제점을 해결하기 위해서 나온게 바로 Spring Cloud Bus 입니다. Spring Cloud Bus를 활용하면, 한번의 Refresh로 Bus와 연결되어있는 모든 Service를 Refresh하게 됩니다. 기존에는Gateway-Service,User-Service 마다 각각 Refresh해줘야 했던 반면, Spring Cloud Bus를 활요하면 한번의 Refresh만으로도 작업이 완료가 된다는 의미입니다! 다만 Spring Cloud Bus를 활용하기전에 Rabb..
-해당 포스팅은 Git Hub 회원가입이 선행되어야 합니다. -해당 포스팅은 인프런의 Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)을 참고했습니다. 기존에 Repository는 Local이었지만 Local 환경은 협업도 어렵고, 파일을 유실했을때 찾기도 어렵습니다. 그래서 이번엔 Git Hub와 연동을 통해서 원격 Repository에 지금까지 저희가 작업한 내용을 올릴려 합니다! 천천히 따라와주세요. #Git Hub 먼저 Git-Hub에 로그인을 한 뒤 오른쪽 상단에 + 버튼을 클릭해 Create a new repository로 이동해줍니다. 다음과 같이 Repository를 생성하겠습니다. 해당 Repository로 이동 후 최 상단에 있는 https://github.com/~..
- 해당 포스트는 전에 진행한 Config -Service 에서 이어집니다. - 또한 해당 포스트는 인프런 강좌 Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)를 참조했습니다. # Profiles? yml File을 읽을 때 Profiles를 설정해주면, 각각 의 서비스에 서로 다른 Yml을 제공해줄 수 있습니다. 백번의 말 보다는 직접 해보는게 더 와닿을 것이라 생각이 드니 바로 시작할게요! 가장 먼저 진행 할 것은 기존에 작성한 ecommerce.yml 파일을 복사해서 3개로 늘려주세요 제목 형태는 application을 Default로 두고 뒤에 성질을 알 수 있도록 dev와 prod를 붙혔습니다. #ecommerce.yml token: expiration_time: 86400..
이번엔 Gateway에 Config Server를 연동할 예정입니다. User-Service의 Login은 토큰을 발급하는데 해당 토큰은 Secret에 따라서 바뀌게 됩니다. Gateway에 인증 시스템이 있으니 User-Service의 Secret 값이 바뀌면 당연히 Gateway의 Secret값도 동일한 값으로 변경되어야 합니다. 서론이 너무 길었네요 바로 시작하겠습니다. #pom.xml user-service와 동일하게 dependency를 추가해줍니다. org.springframework.boot spring-boot-starter-actuator org.springframework.cloud spring-cloud-starter-config org.springframework.cloud spri..
이번엔 한번 Config-Server에 있는 Yml 파일을 조금 수정해볼려고 합니다. #ecommerce.yml 기존 token 값에서 ecommerce 값을 추가해줍니다. token: expiration_time: 86400000 secret: ggpark_token_ecommerce gateway: ip: 0.0.0.0 #cmd 다시 cmd창을 열고 repositroy 가 있는 경로로 이동해줍니다. 그리고 아래의 커맨드를 입력해줍니다. git add ecommerce.yml git commit -m "changed some values" #Test UserService Test를 위해서 다시 User-Service를 재시작해줍니다. 정상적으로 바뀌었네요... 흠... 그런데 말이죠... 이거 묘하게 ..
지금까지 User-Service를 제작했는데 이제 Config Server 와 연동을 하려 합니다. 여기서부터는 새로 시작한다는 마음으로 지금까지 작성된 프로젝트를 공유합니다. 다만 저번 시간에 말씀드린 Config 의 기본설정을 완료하셨다는 전제로 진행하겠습니다. #프로젝트 파일 한 가지 주의하셔야할건 spring_cloud는 Work_Space 개념입니다. spring_cloud는 프로젝트가 아닙니다! 그리고 IntelliJ 를 활용한다는 기준으로 각 service는 하나의 창에서 하나씩 실행시켜아 합니다. STS나 Eclipse와는 다르게 Intellij 는 하나의 프로젝트는 하나의 Window라는 개념이라는 점 숙지 바랍니다. #개요 이번 시간에 진행할 내용은, Config-Server의 정보를 ..
기존에 application.yml파일을 수정할 때, 각 서비스마다 application.yml을 수정하고, 서비스를 재빌드 했던 점 기억나시나요? 이런 과정을 번거로울 뿐만 아니라 개발 테스트 기간에도 상당한 영향을 줍니다. 특히 MSA 형태로 어플리케이션을 제작하면 서비스가 증가함에 따라서 application.yml 파일도 증가합니다. 이런 이슈를 해결하기 위해서 사용되는 것이 바로 Config 입니다. Spring Cloud Config는 application.yml과 같이 서버 클라이언트 구성에 필요한 정보를 담고 있는 파일을 외부 시스템에서 중앙화를 통해서 관리하는 방식으로 이해하면 됩니다. Config를 통해서 서버의 설정정보들을 중앙에서 관리한다면, 각 서비스를 재 빌드할 필요성도 없어지고..
- 코드를 원하시는 분은 하단에 코드를 첨부하니 확인해주세요. JWT 토큰을 생성하는 법을 알아봤으니 이제 해당 토큰을 활용해서 인증을 받는 기능을 구현하고자 합니다. 마찬가지로 pom.xml에 JJWT의 Dependency를 추가해줍니다. #pom.xml io.jsonwebtoken jjwt 0.9.1 javax.xml.bind jaxb-api jjwt는 Jwt사용에 있어서 필수적인 요소인데 이를 인증하기 위해서는 jaxb-api가 필요합니다. 해당 dependency가 없으면 오류가 발생하는데 이는 올바른 응답을 위해서 반드시 요청에 Converter가 필요하다 정도로 생각하면 될 거 같습니다. 다음으로는 AuthorizationHeaderFilter.Class를 생성하고 다음과 같이 입력합니다. 약..
- Total
- Today
- Yesterday
- springcloud
- 운동
- Feign
- config
- 운동일기
- 루틴기록
- Gateway
- Logstash 활용
- LoadBalancer
- github
- Logstash to ElasticSearch
- docker
- producer
- consumer
- prometheus
- Kafka Connect
- ACTUATOR
- Spring + ELK
- elasticSearch
- zipkin
- 오늘저녁 삼겹살
- kafka
- MariaDB
- JWT
- UserService
- 미래의나에게동기부여
- 빅-오
- git
- rabbitmq
- MSA
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |