Spring Cloud Bus
- 분산 시스템에서 노드(각 서비스)를 노드끼리 연결될 수 있는 경량 메시지 브로커(ex: RabbitMQ)와 연결
- 시스템에 대한 상태 및 구성에 대한 변경 사항을 연결된 노드에게 전달(Brodcast)하는 역할
- 문자, 객체 등 모든 것이 메시지가 될 수 있다.
- Spring Cloud Bus가 연결된 노드에 데이터가 갱신되었음을 알려줄 때 AMQP라는 프로토콜을 사용한다.
AMQP
- Advanced Message Queuing Protocol
- 메시지 지향 미들웨어를 위한 개방형 표준 응용 계층 프로토콜
- P2P, Publisher와 Subscriber 사이에서 데이터를 주고 받는 방식
- 신뢰성, 보안
- RabbitMQ, Erlang에서 사용
RabbitMQ
- 초당 20+개 메시지를 Subscriber에게 전달
- 메시지 전달 보장, 시스템 간 메시지 전달
- 브로커, 소비자 중심
Kafka
- Apache Software Foundation이 개발한 오픈 소스 메시지 브로커 프로젝트
- 대용량의 데이터를 처리 가능한 메시징 시스템
- 초당 10만+개 이상의 이벤트 처리
- Topic에 메시지 전달 후 Subscriber가 가져가는 방식
- 분산형 스트리밍 플랫폼(Ack를 기다리지 않고 전달 가능)
- 생산자 중심