[MSA] Spring Cloud Bus - RabbitMQ

jineey·2024년 11월 22일

MSA

목록 보기
26/36

Spring Cloud Bus

📌 개요

사용 이유

Spring Cloud Config의 변경 내용을 각 마이크로서비스에 적용하는 방법은 다음과 같다.

  • 서비스 재기동
    • 비효율적
  • Actuator refresh
    • Application 상태, 모니터링
    • Metric 수집을 위한 Http End Point 제공
    • 여러 개의 어플리케이션/마이크로서비스의 경우에는 각각의 어플리케이션마다 수동으로 refresh 필요
  • Spring Cloud Bus
    • 분산 시스템의 노드(=Microservice)를 경량 메시지 브로커(=RabbitMQ)와 연결
    • 상태 및 구성에 대한 변경 사항을 연결된 노드에게 전달(Broadcast)

개념 설명

  • AMQP (Advanced Message Queuing Protocol)
    • 메시지 지향 미들웨어를 위한 개방형 표준 응용 계층 프로토콜
    • 메시지 지향, 큐잉, 라우팅(P2P, Publisher-Subcriber), 신뢰성, 보안
    • Erlang, RabbitMQ에서 사용
  • Kafka 프로젝트
    • Apache Software Foundation이 Scalar 언어로 개발한 오픈 소스 메시지 브로커 프로젝트
    • 분산형 스트리밍 플랫폼
    • 대용량의 데이터를 처리 가능한 메시징 시스템
  • RabbitMQ
    • 메시지 브로커
    • 초당 20+ 메시지를 소비자에게 전달
    • 메시지 전달 보장, 시스템 간 메시지 전달
    • 브로커, 소비자 전달
  • Kafka
    • 초당 100k+ 이상의 이벤트 처리
    • Pub(보내는 사람)/Sub(구독자), Topic에 메시지 전달
    • Ack(Acknowledgement)를 기다리지 않고 전달 가능
      • Subscriber가 데이터를 받았는지 여부를 신경 쓰지 않음
    • 생산자 중심

Actuator bus-refresh Endpoint


1. 분산 시스템의 노드를 경량 메시지 브로커와 연결
2. 상태 및 구성에 대한 변경 사항을 연결된 노드에게 전달(Broadcast)

📌 설치 방법

  1. MacOS 설치 방법
    homebrew 를 사용해 설치
    🔗 참고 : [RabbitMQ] - 1. Mac에서 RabbitMQ 설치하기

  2. Window10 설치 방법

 rabbitmq-plugins enable rabbitmq_management

※ 안될 경우 재설치 필요
🔗 출처: RabbitMQ Server - 윈도우에 설치 및 동작 시키기

rabbitmq-service.bat remove
rabbitmq-service.bat install
rabbitmq-server -detached
rabbitmq-plugins enable rabbitmq_management  

📌 실행결과

  • 127.0.0.1:15672 실행

  • 로그인
    아이디: guest / 비밀번호: guest

profile
새싹 개발자

0개의 댓글