producer는 Kafka topic에 이벤트를 발행(쓰기)하고, consumer는 topic에서 이벤트를 구독(읽기)합니다. partitioning, offset, consumer group을 포함하여 이들이 어떻게 작동하는지 이해하는 것은 Kafka 사용의 기본입니다.
Producer — 이벤트 쓰기
PRODUCER는 TOPIC에 이벤트를 발행:
→ 레코드(key, value)를 topic에 전송
→ key가 PARTITION을 결정(같은 key → 같은 partition → 해당 key의 순서 보장);
key 없음 → 분산(라운드 로빈)
→ 내구성을 위한 ACKNOWLEDGMENT(acks) 구성 가능(replica 확인 대기)
→ 처리량을 위한 배치, 압축
Consumer — 이벤트 읽기
CONSUMER는 topic을 구독하고 이벤트를 읽음:
→ partition에서 읽으며 자신의 OFFSET(위치)을 추적 → 멈춘 지점부터 재개
→ 자신의 속도로 읽음(이벤트가 보존됨); 어떤 offset에서든 다시 읽기(재생) 가능
→ 진행 상황을 기록하기 위해 offset을 COMMIT(재시작 시 재처리 방지)
