티스토리 뷰
지금까지 User-Service를 제작했는데 이제 Config Server 와 연동을 하려 합니다.
여기서부터는 새로 시작한다는 마음으로 지금까지 작성된 프로젝트를 공유합니다.
다만 저번 시간에 말씀드린 Config 의 기본설정을 완료하셨다는 전제로 진행하겠습니다.
#프로젝트 파일
한 가지 주의하셔야할건 spring_cloud는 Work_Space 개념입니다. spring_cloud는 프로젝트가 아닙니다!
그리고 IntelliJ 를 활용한다는 기준으로 각 service는 하나의 창에서 하나씩 실행시켜아 합니다.
STS나 Eclipse와는 다르게 Intellij 는 하나의 프로젝트는 하나의 Window라는 개념이라는 점 숙지 바랍니다.
#개요
이번 시간에 진행할 내용은, Config-Server의 정보를 User-service가 이용 할 수 있도록 설정하는 과정입니다.
token.secret 값을 ggpark_token으로 설정했었는데, 해당 값은 User-Service가 읽을 수 있을지 테스트하는 과정입니다.
해당 과정이 성공하면 ggpark_token을 필요한 서비스마다 다 일일히 설정할 필요 없어집니다. 편의성이나 관리 측면에서
굉장한 이득을 볼 수 있는거에요!
#pom.xml
가장 먼저 선행되어야 하는 과정은 늘 그렇듯이 필요한 의존성을 주입하는 과정입니다.
먼저 첨부된 프로젝트에서 User-Service를 조금 수정할 예정입니다. 해당 프로젝트의 Pom.xml에 들어가주세요
그리고 2개의 Dependency를 추가해줄게요.
<!-- Config Server와 연동하기 위한 Dependency -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
<!-- bootstrap Server 활성화를 위한 Dependency -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
#application.yml
그리고 기존에 User-Service에서 지정해둔 token정보를 주석처리 해줄게요.
#token:
# expiration_time: 86400000
# secret: ggpark_token
#bootstrap.yml
다음으로는 해당 위치에 bootstrap.yml 파일을 만들 예정입니다.
bootstrap.yml 파일에 다음과 같이 입력해주세요.
uri는 Config-Server 그리고 Name은 yml파일의 이름입니다.
spring:
cloud:
config:
uri: http://127.0.0.1:8888
name: ecommerce
#UserController.java
테스트를 위해서, UserController를 수정하려고 합니다.
기존에는 Port만 체크했다면 이번엔 local Server , Server 의 Port정보와 Token의 정보들을 출력하고자 합니다.
/health_check를 아래와 같이 바꿔주세요.
@GetMapping("/health_check")
public String status(){
return String.format("It's Working in User Service"
+ ",port(local.server.port)=" + env.getProperty("local.server.port")
+ ",port(server.port)=" + env.getProperty("server.port")
+ ",token secret =" + env.getProperty("token.secret")
+ ",token expiration time=" + env.getProperty("token.expiration_time")
);
수정 후 ecommerce,user-service,config-service 를 모두 실행 시킨 뒤
user-service의 포트에서 health_check를 해보겠습니다. 다음과 같은 정보가 출력 되나요?
신기하지 않나요? 분명 application.yml 에서 토큰 정보를 주석 처리했는데, token정보를 잘 찾아서 가져옵니다.
이게 Config-Server의 장점입니다... 지금은 Token은 정보 뿐이지만, 계속 서비스가 증가되면서 중복되는 서버설정이
많아진다면 Config-Server는 더더욱 빛을 발합니다. 다음 시간에는 조금 더 고도화하는 작업을 진행하겠습니다.
감사합니다.
'웹 프로그래밍 > MSA 학개론' 카테고리의 다른 글
[MSA] User-Service와 Config Server 연동 - 3 - (0) | 2022.04.21 |
---|---|
[MSA] User-Service와 Config Server 연동 - 2 - (0) | 2022.04.21 |
[MSA] Spring Cloud Config 핥아먹기 (0) | 2022.04.21 |
[MSA] JWT 토큰을 활용한 인증 (0) | 2022.04.21 |
[MSA] JWT 토큰 생성 (0) | 2022.04.20 |
- Total
- Today
- Yesterday
- 루틴기록
- Spring + ELK
- github
- UserService
- 빅-오
- zipkin
- JWT
- springcloud
- docker
- rabbitmq
- Logstash to ElasticSearch
- consumer
- ACTUATOR
- elasticSearch
- 미래의나에게동기부여
- config
- 운동
- 오늘저녁 삼겹살
- prometheus
- 운동일기
- Kafka Connect
- Feign
- MSA
- LoadBalancer
- producer
- Logstash 활용
- git
- Gateway
- kafka
- MariaDB
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |