배치(메시지 그룹화)와 압축(데이터 압축)은 높은 Kafka 처리량을 위한 핵심 기법입니다 — 메시지당 오버헤드와 네트워크/저장 비용을 줄임. 이를 이해하면 Kafka의 높은 성능을 달성하는 데 도움이 됩니다.
배치 — 메시지 그룹화
BATCHING → producer가 전송 전에 여러 메시지를 하나의 BATCH로 그룹화:
→ 많은 작은 요청 대신 더 적고 큰 요청 → 훨씬 높은 THROUGHPUT(요청당 오버헤드 감소,
네트워크 왕복 감소)
→ 제어: batch.size(배치 크기 한도) + linger.ms(배치 축적 대기 시간)
→ 트레이드오프: 약간 높은 LATENCY(배치 대기) 대 훨씬 높은 처리량
→ 배치는 고처리량 생산에 필수적
압축 — 배치 압축
COMPRESSION → 전송 전에 메시지 배치 압축(그리고 압축된 채로 저장):
→ 압축 유형: snappy, lz4, zstd(빠름), gzip(높은 비율, 느림)
→ 이점: 네트워크 대역폭 감소, broker 저장 감소, 종종 더 높은 처리량
(전송할 데이터 감소가 CPU 비용을 능가)
→ 배치가 잘 압축됨(더 많은 데이터 → 더 나은 비율) → 배치 + 압축이 함께 작동
→ consumer가 압축 해제; broker는 압축 저장(종단 간 효율적)
