📡
Publish-Subscribe
메시지 브로커를 통한 비동기 통신
Pub/Sub 패턴에서 발행자와 구독자는 서로를 직접 알지 못합니다. 메시지 브로커(중간 계층)가 메시지를 관리하며, 토픽 기반으로 메시지를 분배합니다.
구조 다이어그램
📝
Publisher
메시지 발행자
① 발행
→
📡
Message Broker
토픽 관리 + 메시지 분배
Topic A
Topic B
② 분배
→
📥
Subscriber A
📥
Subscriber B
📥
Subscriber C
흐름 설명
- 구독자가 관심 토픽을 브로커에 등록 (구독)
- 발행자가 메시지를 특정 토픽으로 발행
- 브로커가 해당 토픽의 모든 구독자에게 메시지 분배
- 각 구독자가 독립적으로 메시지 처리
동작 흐름
1
구독자가 메시지 브로커의 특정 토픽을 구독
2
발행자가 메시지를 특정 토픽으로 발행
3
메시지 브로커가 해당 토픽의 모든 구독자에게 메시지 분배
4
각 구독자가 독립적으로 메시지 처리
장점
- ✓ 발행자-구독자 간 느슨한 결합
- ✓ 확장성 뛰어남
- ✓ 비동기 처리 가능
- ✓ 다수의 구독자에게 동시 전달
단점
- ✗ 메시지 브로커 의존
- ✗ 메시지 순서 보장 복잡
- ✗ 디버깅 어려움
- ✗ 메시지 유실 가능성
사용 사례
Redis Pub/Sub
Apache Kafka
AWS SNS/SQS
Google Cloud Pub/Sub
RabbitMQ