[LG CNS AM Inspire CAMP 1기] MSA (3) - Spring Cloud Bus (rabbitmq)

니니지·2025년 3월 10일

LG CNS AM Inspire Camp 1기

목록 보기
35/47

INTRO

안녕하세요, 오늘은 spring cloud bus 기능을 활용한 이벤트 전파 기능을 학습했습니다. 실습은 spring cloud bus의 여러 항목 중 rabbitmq를 다루었습니다.

1. Spring Cloud Bus

RabbitMQ나 Kafka와 같은 메시지 브로커를 통해 마이크로서비스 간의 이벤트를 전파하는 기능을 제공합니다. 주로 설정 변경을 전체 서비스에 실시간으로 반영하거나, 배포 없이 설정을 갱신하는 데 사용됩니다.

2. Spring Cloud Bus + RabbitMQ 연동하기

  • Spring Config Server와 RabbitMQ를 연동해 서비스의 설정 변경을 실시간으로 전파합니다.
  • /actuator/bus-refresh 엔드포인트를 통해 Config Server에서 변경 사항을 자동으로 브로드캐스트합니다.
  • 설정 파일을 원격 깃 커밋으로 관리하지 않고, 원격 repository 에서 가져오는 방식으로 변경함.
  • Spring Cloud Bus(rabbitmq) 를 다운받아 pom.xml 과 yml에 dependency 및 지정 추가.
    -amqp
  • 도식화

  • busrefresh를 사용해 일괄 적용 가능
  • 토큰 재발급 시 각 서비스(health-check, 로그인 등) 적용 필요-> 안할 경우 401 error
    --> 처리 순서

3. RabbitMQ에서 메시지 확인

-RabbitMQ 관리 콘솔 (http://localhost:15672)에 접속하면,
springCloudBus라는 Exchange가 자동으로 생성되어 메시지를 전달합니다.

  • 정상 작동 로그

4. stop rabbitmq


OUTRO

-Spring Cloud Bus: 서비스 간 이벤트를 RabbitMQ나 Kafka로 전달.
-RabbitMQ: 메시지를 브로커로 사용.
-/actuator/bus-refresh: 설정 변경 사항을 클라이언트에 브로드캐스트.
-@RefreshScope: Bean을 재생성하여 최신 설정을 반영.

profile
지니니

0개의 댓글