| RabbitMQ | Kafka | |
|---|---|---|
| 설계 철학 | 전통적 메세지 브로커 | 분산 스트리밍 플랫폼 |
| 메세지의 안정적 전달과 큐잉에 중점 | 대규모 실시간 데이터 스트림의 저장과 분석에 중점 | |
| 메세지 모델 | Queue를 중점으로 메세지 전달 | Topic을 중심으로 메세지 저장 |
| 메세지는 Queue에 저장 | 메세지는 Topic의 파티션에 저장 | |
| Queue에서 하나 이상의 컨슈머에게 전달 | 컨슈머는 해당 파티션에서 메세지 읽음 | |
| 메세지 지속성 | 메세지를 메모리나 디스크에 저장 가능 | 메세지 디스크에 저장 |
| 일반적으로 단기 저장이 목표 | 장기 저장이 목표, 데이터 로그는 설정된 기간동안 보존 | |
| 사용 | 전통적인 메세지 큐 사용 사례에 적합 | 대규모 데이터 스트림 처리에 적합 |
| ex | 작업 큐, 요청/응답 패턴, 비동기 작업 처리 등 | 실시간 데이터 스트리밍, 로그 수집 및 분석, 이벤트 소싱 등 |