RabbitMQ는 비동기적이고 느슨하게 결합된 통신에 사용됩니다 — 일반적인 사용 사례로는 작업/잡 큐, 마이크로서비스 메시징, 부하 분산, 다양한 메시징 패턴이 있습니다. 사용 사례를 이해하면 RabbitMQ가 어디에 적합한지 명확해집니다.
일반적인 사용 사례
✓ TASK / JOB 큐 → 시간이 오래 걸리는 작업을 백그라운드 worker로 넘김 (예: 이메일 발송,
이미지 처리, 리포트 생성) → 빠른 응답, 비동기 처리 (가장 전형적인 사용)
✓ 마이크로서비스 DECOUPLING → 서비스가 메시지로 통신 (독립적, 탄력적)
✓ 부하 분산(LOAD DISTRIBUTION) → 여러 worker에 작업 분배 (competing consumers →
병렬 처리, 확장)
✓ 비동기 워크플로 → 프로세스의 단계들을 메시지로 조율
✓ PUB/SUB → 여러 consumer에게 이벤트 브로드캐스트 (fanout)
✓ RPC / request-reply → 서비스 간 request/response 메시징
✓ 버퍼링 / 부하 평탄화 → 스파이크 흡수; worker가 꾸준히 처리
RabbitMQ가 이에 적합한 이유
→ 신뢰성 있는 전달 (ack, persistence) → 작업/메시지를 잃지 않음
→ 유연한 ROUTING (exchange 타입) → 다양한 패턴 (direct, pub/sub, topic, RPC)
→ DECOUPLING → producer와 consumer 독립 → 탄력적, 확장 가능
→ 부하 평탄화 → queue가 버퍼링; competing consumers가 작업 분배
→ 성숙하고 기능 풍부 → 전통적 메시징과 작업 처리에 적합
