두잇 두두 2025. 2. 4. 10:20
728x90

Pub/Sub(발행/구독) 모델은 메시지를 발행자(Publisher)가 보내고, 이를 구독자(Subscriber)가 받아 처리하는 방식입니다.
Producer-Consumer 모델과 차이점하나의 메시지를 여러 Subscriber가 받을 수 있다는 점입니다.

 

🔹 Pub/Sub 방식의 동작 구조

  1. Publisher(발행자) → 메시지를 특정 Topic에 발행 (Publish)
  2. Broker(중앙 메시지 시스템) → 메시지를 저장하고 전달 (ex. Kafka, Redis, RabbitMQ)
  3. Subscriber(구독자) → 특정 Topic을 구독(Subscribe)하여 메시지를 받음

💡 핵심 특징:

  • 1:N 관계 → 하나의 메시지를 여러 Subscriber가 받을 수 있음
  • 구독한 Consumer만 메시지를 받음 (새로운 Consumer는 과거 메시지를 받지 못함)
  • 비동기 처리 가능 → Subscriber가 다수일 경우도 개별적으로 메시지 처리

 

🔹 Pub/Sub 방식 vs Queue 방식 차이점

비교 항목Pub/Sub 방식Queue 방식

메시지 전달 대상 여러 Subscriber(1:N) 하나의 Consumer(1:1)
메시지 중복 수신 여러 Consumer가 동일한 메시지를 받을 수 있음 하나의 메시지는 한 Consumer만 처리
이전 메시지 소비 가능 여부 ❌ (구독 전에 발행된 메시지는 받지 못함) ✅ (메시지를 Queue에 저장 가능)
예제 시스템 Kafka, Redis, RabbitMQ(Fanout) RabbitMQ(Queue), Celery