Phase 2레슨 8

Message Queue

Producer, Consumer, Topic, Partition, Offset, Kafka, DLQ

💡ELI5·

Kafka를 우체물 분류 센터에 비유하면

Producer → Topic (Partition 0,1,2) → Consumer Group
                                          각 Partition 담당
💡 비유Kafka = 우체물 분류 센터. Producer = 편지 보내는 사람, Topic = 목적지별 분류함, Partition = 컨베이어 벨트 라인, Consumer Group = 배달팀. 한 라인은 한 배달원이 전담하므로 순서가 꼬이지 않는다.
🔬Deep Dive·

Topic, Partition, Offset

개념설명비유
Topic메시지의 논리적 채널 (예: orders)분류함
PartitionTopic의 물리적 분할, append-only 로그컨베이어 벨트 라인
OffsetPartition 내 메시지의 순번배달 번호
Consumer GroupPartition을 분담하는 Consumer 집합배달팀
BrokerKafka 클러스터의 노드우체국
🔬Deep Dive·

Delivery Semantics

Semantic보장구현 방법주의점
At-most-once최대 1회 (유실 가능)ack 없이 전송메시지 유실 허용 시
At-least-once최소 1회 (중복 가능)ack + 재시도Consumer 멱등성 필수
Exactly-once정확히 1회트랜잭션 + idempotent Producer성능 저하, 복잡성
⚖️Trade-off·

비동기 메시징의 Trade-off

이점대가
Producer/Consumer 분리 (느슨한 결합)디버깅 어려움 (분산 추적 필요)
트래픽 스파이크 완충 (버퍼 역할)메시지 지연 (실시간 보장 안 됨)
개별 확장 (Consumer 추가만 하면 됨)순서 보장 복잡 (Partition 설계)
장애 격리 (Consumer 죽어도 Producer 정상)중복 처리 가능 (멱등성 필요)

❓ 체크포인트 질문

  1. 1.Kafka에서 Partition이 순서 보장에 어떤 역할을 하는가?
  2. 2.Consumer Group의 역할은?
  3. 3.Dead Letter Queue(DLQ)가 필요한 이유는?
  4. 4.At-least-once와 At-most-once delivery의 차이는?
  5. 5.메시지 큐가 서비스 간 결합을 어떻게 느슨하게 만드는가?