아래는 개발자 관점에서 Kafka vs Redis vs RabbitMQ를 정확히 비교한 정리입니다.
(개념 → 구조 → 성능 → 사용 사례 → 선택 기준 순)


1) 핵심 포지션 비교 (한 줄 요약)

시스템정체성

Kafka 분산 이벤트 스트리밍 플랫폼 (Event Log)
Redis 인메모리 데이터 구조 서버 + 메시징
RabbitMQ 전통 메시지 큐 (Message Broker)

👉 핵심 차이:

  • Kafka = 데이터 스트림 플랫폼
  • Redis = 초고속 캐시/큐
  • RabbitMQ = 안정적인 메시지 전달

2) 구조적 차이 (개발자 핵심 이해)

✅ Kafka 구조

Producer → Topic(Partition) → Consumer Group

특징:

  • 메시지 삭제 ❌ (로그처럼 저장)
  • 여러 Consumer가 같은 메시지 읽기 가능
  • 대용량 처리 최적화

✅ RabbitMQ 구조

Producer → Exchange → Queue → Consumer

특징:

  • 메시지 소비 후 삭제 ✅
  • 라우팅 규칙(Exchange) 강력
  • 트랜잭션 메시지에 강함

✅ Redis 구조 (Pub/Sub or Stream)

Producer → Redis → Consumer

특징:

  • 메모리 기반 → 초고속
  • 기본적으로 영속성 약함 (옵션 가능)
  • Kafka보다 단순

3) 성능 & 처리량 비교

항목KafkaRedisRabbitMQ

처리량 ⭐⭐⭐⭐⭐ (매우 높음) ⭐⭐⭐⭐ ⭐⭐⭐
지연시간(latency) 낮음 ⭐⭐⭐⭐⭐ (최저) 중간
메시지 크기 대용량 가능 제한적 중간
데이터 저장 디스크 기반 메모리 기반 디스크 가능
확장성 매우 뛰어남 제한적 보통

👉 결론:

  • Kafka = 대용량
  • Redis = 초저지연
  • RabbitMQ = 안정성

4) 메시지 모델 비교

✅ Kafka (로그 기반)

  • 메시지 = 이벤트 기록
  • 삭제되지 않음
  • offset으로 읽음

👉 특징:

Consumer A → offset 100
Consumer B → offset 50

같은 메시지를 서로 다르게 소비 가능


✅ RabbitMQ (큐 기반)

  • 메시지 = 작업(Task)
  • 소비되면 삭제됨

👉 특징:

Queue → Consumer 1 or Consumer 2

같은 메시지는 한 번만 소비


✅ Redis (Pub/Sub / Stream)

Pub/Sub

  • 브로드캐스트
  • 메시지 저장 ❌

Stream

  • Kafka와 유사하지만 기능 제한

5) 전달 보장 수준 (Delivery Semantics)

방식KafkaRedisRabbitMQ

At-most-once 가능 가능 가능
At-least-once 기본 일부 기본
Exactly-once 지원 제한적 제한적

👉 Kafka가 가장 강력


6) 실무 사용 사례 비교

✅ Kafka가 적합한 경우

  • 대규모 로그 수집
  • 이벤트 기반 MSA
  • 빅데이터 파이프라인
  • 실시간 분석
  • CDC (DB 변경 이벤트)
  • AI/추천 시스템

예:

주문 이벤트 → Kafka → 여러 서비스

✅ RabbitMQ가 적합한 경우

  • 업무 메시지 처리
  • 금융/결제 트랜잭션
  • 작업 큐(Task Queue)
  • 복잡한 라우팅

예:

결제 요청 → RabbitMQ → 결제 서비스

✅ Redis가 적합한 경우

  • 캐시
  • 실시간 알림
  • 간단한 큐
  • Rate Limiting
  • 세션 저장

예:

알림 메시지 → Redis Pub/Sub

7) 개발자 기준 선택 가이드 (중요 ⭐)

✅ 1) 대용량 이벤트 처리?

👉 Kafka

✅ 2) 빠른 응답 속도?

👉 Redis

✅ 3) 안정적인 작업 큐?

👉 RabbitMQ


✅ 4) MSA 이벤트 버스?

👉 Kafka

✅ 5) 단순 메시지 큐?

👉 Redis or RabbitMQ

✅ 6) 금융/결제?

👉 RabbitMQ or Kafka


8) 실무에서 실제 구조 (현실)

대기업은 보통 이렇게 씀:

Kafka → 시스템 간 이벤트
Redis → 캐시 / 실시간 처리
RabbitMQ → 업무 메시지

👉 경쟁 관계 ❌
👉 역할 분담 관계 ✅


9) 진짜 핵심 요약 (면접용)

💡 면접에서 이렇게 말하면 좋음:

Kafka는 대규모 이벤트 스트리밍과 로그 처리에 최적화된 플랫폼이고,
RabbitMQ는 메시지 전달과 라우팅에 강한 전통적인 메시지 브로커이며,
Redis는 초저지연 인메모리 데이터 처리와 간단한 메시징에 적합하다.


10) 원하면 더 깊게 설명해줌

원하면:

  • Kafka vs Redis vs RabbitMQ 아키텍처 그림
  • 실무 설계 예시 (MSA)
  • .NET 기준 사용법
  • 성능 튜닝 포인트
  • 언제 Kafka 쓰면 망하는지 😈

👉 “MSA에서 어떻게 같이 쓰는지” 알려달라고 하면 진짜 핵심 설명해줌.

728x90

+ Recent posts