[공부정리] Spring Cloud Bus를 이용한 bus-refresh의 필요성과 사용방법

jeyong·2024년 3월 4일
0

공부 / 생각 정리  

목록 보기
36/120
post-custom-banner


이번에 작성할 주제는 저번 [공부정리] Spring Actuator 사용하기의 이어서 Spring Actuator를 이용하여 bus-refresh를 구현하는 방법에 대해서 다룰 예정이다.

1. bus-refresh의 필요성


변경된 환경설정 정보를 다시 적용시키기 위해서는 각각의 Config Client 인스턴스들에게 각각 Actuator의 /refresh를 호출을 해줘야한다는 단점을 해결하기 위해서 등장하였다.
사진에서 볼 수 있듯이 Spring Cloud Bus를 통해서 하나의 메시지 브로커에 모든 인스턴스들을 연결해서 해결할 수가 있다. 자세한 내용은 아래 블로그의 내용을 참고하는 것을 추천한다.

https://blog.eomdev.com/springcloud/2019/04/01/Spring-Cloud-Bus.html

또한 공식 문서에서 전반적인 내용을 알 수 있다.

https://docs.spring.io/spring-cloud-bus/docs/current/reference/html/

2. RabbitMQ

RabbitMQ를 이용하여 적용하는 방법은 간단하다. 공식 문서에서 RabbitMQ를 사용하는 방법을 제공해주고 있으니 참고하여 적용하면 된다.

spring:
  rabbitmq:
    host: mybroker.com
    port: 5672
    username: user
    password: secret

management:
  endpoints:
    web:
      exposure:
        include: refresh, health, beans, httptrace, busrefresh

When running on localhost, you need not do anything. If you run remotely, use Spring Cloud Connectors or Spring Boot conventions to define the broker credentials, as shown in the following example for Rabbit:

3. Kafka

마찬가지로, Kafka를 이용해서도 간단하게 적용할 수 있다. Kafka에 대한 내용은 아래 블로그 내용을 참고하는 것을 추천한다.

https://cheese10yun.github.io/spring-config-client/

4.@RefreshScope 와 @ConfigurationProperties

A Scope implementation that allows for beans to be refreshed dynamically at runtime (see refresh(String) and refreshAll()). If a bean is refreshed then the next time the bean is accessed (i.e. a method is executed) a new instance is created.

자세한 내용은 아래 공식문서를 참고하기를 추천한다.

profile
노를 젓다 보면 언젠가는 물이 들어오겠지.
post-custom-banner

0개의 댓글