Spring Cloud Config 적용하기
Config Server
private repository 연결 시 ssh 설정
ssh-keygen -m PEM -t ecdsa -b 256
.ssh/id_ecdsa.pub의 공개키는 github에 등록하고,
.ssh/id_ecdsa의 개인키는 프로젝트 내 yaml 파일에 설정.
Config Client
Client에서 config를 새로고침 하는 방법
- Spring Actuator를 통해 클라이언트에 노출된 /actuator/refresh 엔드포인트를 호출.
-
Spring Cloud Bus를 사용하여 Kafka 또는 RabbitMQ와 같은 메시지 브로커를 통해 서비스 간에 상태 변경을 브로드캐스팅할 수 있습니다. 따라서 시나리오에서 동일한 구성 서버에서 읽는 각 구성 클라이언트는 메시지 브로커를 통해 통신하고 구성이 변경되는 경우 새로 고칠 수 있습니다. 즉, 대신 각 구성 클라이언트 애플리케이션에 대해 새로 고침 요청을 할 필요가 없으며 Spring Cloud Bus를 통해 서비스에 메시지를 브로드캐스트하여 새로 고침합니다.
HikariCp DataSource 정보 변경
client service에 application.yml 또는 client service가 가져오는 git 서버에 {service-name}-{profile}.yml에 아래 항목이 정의 되어 있어야 한다.
cloud:
refresh:
extra-refreshable: com.zaxxer.hikari.HikariDataSource
또한 실행중인 서비스 인스턴스에서 refresh로 위 항목을 추가하면 반영이 되지 않는다. 서비스를 시작할 때 configuration되는 정보인듯 하다.
references:
https://soshace.com/spring-cloud-config-refresh-strategies/