Ssemi-Column 2022. 7. 10. 22:33
728x90

Spring Cloud Bus (갱신 자동화)

 

config가 변경되면 각 Micro Service 는 최신 값을 갖고 오기 위해 POST로 http[s]://{microservice host}/actuator/refresh를 해줘야 합니다. 물론 이 작업을 자동화할 수도 있겠으나, config server가 각 Micro Service 의 주소를 모두 관리해야 하니 비효율적입니다. Spring cloud bus는 동적으로 config 변경을 적용하기 위한 MQ(Message Queue) Handler입니다.


? 언제 어떻게 자동 갱신을 할까 ?

  1. Update Config Info : Get 설정 값이 갱신. (git push)
  2. Notify Change Via Git Web Hook : webhook이 POST로 http[s]://{config server host}/actuator/bus-refresh를 실행함. 사전에 git에서 기본으로 제공하는 webhook에 bus-refresh를 수행하는 프로그램을 등록
  3. Publish Message: config server는 Git에서 변경된 내용을 읽어 MQ에 Publish함
  4. Notify: MQ는 각 Micro Service에 설정 값 갱신이 필요함을 통지
  5. Reload Config: 각 Micro Service는 config server를 통해 갱신 된 설정 값을 읽어 반영함
  • Message 는 RabbitMQ를 사용한다.

Cloud Server application.yaml - actuator 설정

management:
  endpoints:
    web:
      exposure:
        include: 'bus-refresh'

⁜ Config Server 설정은 application.yaml에서 예전처럼 spring.cloud.config.uri로 설정할 수 있고, 우선순위가 정해져 있다.

728x90
반응형
LIST