각 어플리케이션의 설정 정보를 외부의 서비스를 이용하여 설정하는 방법을 적용하는 configuration service 구현 방법에 이어서 동적으로 실행 중인 어플리케이션의 동작을 멈추지 않고 설정 정보를 변경하는 방법을 알아보자
사전 준비
1. 외부 설정 서비스
절차
1. 메시지 브로커 설치 (rabbitmq or kafka)
2. bus를 설치할 마이크로 서비스에 의존성 추가하기
3. application.yml 설정하기
1. 메시지 브로커 설치하기 및 실행
docker run --name messagebroker -p 15672:15672 -p 5672:5672 rabbitmq:3-management
도커를 이용해서 간단하게 rabbitmq 를 설치 및 실행할 수 있다. 도커가 없다면 rabbitmq 홈페이지에서 수동설치를 하거나 도커를 설치하여 실습을 진행하자.
rabbitmq의 초기 username과 password는 guest 이다.
2. 의존성 추가하기 (gradle)
implementation 'org.springframework.cloud:spring-cloud-starter-bus-amqp' // spring cloud bus
implementation 'org.springframework.boot:spring-boot-starter-actuator' // spring actuator
버스의 기능을 위해서 추가할 두 가지 라이브러리를 추가해주자.
3. application.yml 설정 추가
# bus configuration
spring:
rabbitmq:
host: {host uri}
port: 5672
username: {rabbitmq username}
password: {rabbitmq password}
# actuator configuration
management:
endpoints:
web:
exposure:
include:
- refresh # 개별 서비스 업데이트 path
- busrefresh # 일괄 업데이트 path
rabbitmq에 접속하기 위해서 필요한 정보와 actuator 에서 업데이트를 위해서 필요한 path 정보를 설정해주자.
4. test
4-1 실행 중인 서비스에 refresh 요청하기 (개별 갱신)
POST http://{target service uri}/actuator/refresh 요청을 한 이후에 변경된 설정이 반영이 되었는지 확인하기
4-2 글로벌 갱신 요청하기 busrefresh
POST http://{bus refresh service}/actuator/busrefresh 요청을 한 이후에 변경된 설정이 모든 어플리케이션에 반영이 되었는지 확인하기
간단하게 변경된 설정 정보를 Environment 객체를 이용해서 조회하는 rest controller 를 구현해서 기능이 동작하는지 확인하는 식으로 확인을 해보았다.
+ 204 응답 코드가 무엇인가?
The HTTP 204 No Content success status response code indicates that a request has succeeded, but that the client doesn't need to navigate away from its current page.
성공했는데 현재 페이지에서 이동할 필요가 없다는 것을 의미한다고 한다.
+ spring cloud bus 공식 문서
'spring > cloud' 카테고리의 다른 글
[spring cloud]#4 spring cloud gateway 구축하기 (0) | 2023.08.15 |
---|---|
[spring cloud]#3 Netflix Eureka 로 디스커버리 서비스 구축하기 (0) | 2023.08.14 |
[spring cloud]#1 spring cloud config server에서 application 설정 정보 조회하기 (0) | 2023.08.08 |