RabbitMQ와 Kafka는 둘 다 메시징 시스템이지만 근본적으로 다릅니다. RabbitMQ는 전통적인 message broker(queue, 유연한 라우팅, 소비되면 제거되는 메시지)이고, Kafka는 분산 이벤트 로그(보존되고 재생 가능하며 고처리량 스트리밍)입니다. 둘은 서로 다른 용도에 적합합니다.
근본적인 차이
RABBITMQ → message BROKER (smart broker, simple consumer):
→ 메시지가 exchange를 통해 ROUTING되고, 소비되면 제거됨 (일시적)
→ 풍부한 ROUTING (exchange 타입); 메시지 단위 처리; push 기반
→ 용도: 작업 큐, 복잡한 라우팅, request/reply, 전통적 메시징
KAFKA → 분산 이벤트 LOG (simple broker, smart consumer):
→ 이벤트가 RETAIN됨 (소비해도 제거 안 됨), 재생 가능; 파티션 기반
→ 매우 높은 처리량; 여러 consumer가 같은 데이터를 읽음; pull 기반
→ 용도: 이벤트 스트리밍, 대용량 데이터, 파이프라인, 보존/재생
