Spring Cloud

Spring Cloud Config

stophyeon 2024. 1. 24. 18:46
728x90

Config란

Config란 구성정보를 말합니다.
지금까지는 Application의 구성정보를 application.yml파일등에 작성하고 관리했을 것입니다.
하지만 구성 정보와 서비스 코드를 분리하는 것이 좋습니다.
만약 구성 정보가 변경된다면 변경된 내용을 적용하기 위해서 서버를 재시작 해야하고, 배포까지 한 상태라면
배포도 다시해야 합니다. 이런 문제를 해결해주는 것이 Spring Cloud Config입니다.
구성 정보만을 저장하고 관리하는 서버를 만들어 서비스들의 구성 정보를 필요시 제공해주는 역할을 합니다.

Spring Cloud Config는 구성 정보를 관리하는 Config Server와 구성 정보를 요청하고 받는 Config Client로 
되어있습니다 
Config Server에는 구성정보를 어디에 저장할지를 설정합니다.
저장 위치는 프로젝트 파일 , git repo, vault에 저장할 수 있습니다. 이번글에는 git repo에 저장하겠습니다. 

 

Config Server

Config Server를 구성하기 위해 의존성을 추가하고 bootstrap.yml에 서버 설정해 보겠습니다.

 

 

의존성에 bootstrap은 spring cloud와 호환을 위해서 추가한 것입니다

 

bootstrap.yml 파일은 서버의 핵심 구성을 정의한 파일입니다.
기존의 application.yml 파일과 같은 기능을 하지만 bootstrap파일은 Spring ApplicationContext로 load되고 
application.yml보다 먼저 load되는 장점이 있습니다.
spring.application.name 어플리케이션의 이름
spring.profiles.active 저장할 장소를 선언(native - 프로젝트 내 파일 & git - git repo)
spring.cloud.config.server.git.uri git repo의 uri
spring.cloud.config.server.git.baseDir Config에 구성파일을 찾는데 사용될 깃의 경로(상위)
spring.cloud.config.server.git.search-paths Config에 구성파일을 찾는데 사용될 깃의 경로(하위)
spring.cloud.config.server.git.default-label 해당 git repo의 branch

 

 

 

@EnableConfigServer를 선언해 해당 클래스가 config server로 사용될 클래스임을 선언합니다.
이제 해당 git repo에 구성 정보 파일을 작성하면 됩니다.
파일을 작성할 때는 파일 이름을 <application 이름>-<profile 이름>.yml

 

Config Client

Config Client는 구성 정보를 Config Server로부터 받아와서 사용하기 때문에 Server에서 어떤 
파일을 받아올지를 설정하는 파일이 필요합니다.

 

 

cloud.config.uri Config Server의 주소
cloud.config.name 가져올 구성정보의 파일명
cloud.config.profile 가져올 구성정보의 파일명
management.endpoints.web.exposure.include 구성정보가 변경되었을 때의 설정
구성 정보가 변경되었을 때는 서비스 서버를 재시작할 필요없이 config 서버를 갱신하는 것으로 구성 정보의 변경 사항이 적용됩니다. config 서버를 갱신하는 방법은 아래 주소로 이동하는 것입니다.
"http://localhost:8082/actuator/refresh"

 

'Spring Cloud' 카테고리의 다른 글

Feign Client  (1) 2024.01.25
Spring Cloud 동작 과정  (0) 2024.01.22
Spring Cloud 구조  (0) 2024.01.21