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 |