MSA
Config service
혀눅짱
2023. 9. 4. 10:57
프로젝에 필요한 설정들을 별도로 관리하는 config server 프로젝트를 생성한다.
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
디펜던시에 spring cloud config server를 추가한후
메인 어플리케이션에
@EnableConfigServer
어노테이션을 추가하도록 한다.
cloud:
config:
server:
git:
#uri: https://github.com/lhw7511/spring-cloud-config
uri: file:///config file 경로
config 파일경로에
컨피그이름.yml 또는 컨피그이름-액티브이름.yml 액티브는(dev,prod 등 상황과 환경에따른 분리파일들)

컨피그파일 이름을 ecommerce라고 설정한뒤 vi로 설정들을 세팅하였다.
config-service의 포트번호를 8888로 설정하고
로컬에서 호출해본다.
호출 url 규칙은 컨피그이름/액티브이름(없을시 default)가 규칙이다.

dev버전의 ecommerce 설정파일을 호출하였더니 정상적으로 출력되었다.
이다음으로는 user-service에 연동하여 설정파일을 불러오는 테스트를 진행하였다.
user-service yml에
spring:
cloud:
config:
uri: http://localhost:8888
name: ecommerce
profiles:
active: dev
config-service에 접근하도록 컨피그 서버 정보를 추가한다.
그 후 ecommerce-dev.yml의 설정파일을 user-service에 찍어보는 로직을 구현한다.
@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.port2")
+ ", token secret=" + env.getProperty("token.secret")
+ ", token expiration time=" + env.getProperty("token.expiration_time")
);
}

user-service에 직접 명시하지않고 config-service를 통해 토큰의 설정들을 불러들여서 정상적으로 출력된 모습을 확인 할 수 있었다.