피드로 돌아가기
Kafka Safe Producer Defaults and Version Compatibility Explained
Dev.toDev.to
Backend

Kafka Broker 3.0 이상에서 Safe Producer 기본값이 자동 활성화되지만, Producer Client 버전이 낮으면 수동 설정이 필요합니다

Kafka Safe Producer Defaults and Version Compatibility Explained

Rajeev2026년 4월 1일3intermediate

Context

기존 Kafka 2.8 이하에서는 개발자가 idempotence와 acks 설정을 수동으로 구성해야 했습니다. 이로 인해 중복 메시지 발생과 순서 보장 실패 문제가 빈번하게 발생했습니다.

Technical Solution

  • Kafka Broker ≥3.0 → enable.idempotence=true, acks=all, retries=Integer.MAX_VALUE 기본 적용
  • max.in.flight.requests.per.connection=5으로 동시 요청 제한하여 순서 보장
  • delivery.timeout.ms=120000으로 전송 타임아웃 관리
  • min.insync.replicas는 Broker/Topic 레벨 설정으로 별도 구성 필요
  • Producer Client 버전이 Broker 버전보다 낮으면 기본값 미적용

Key Takeaway

Broker 버전과 Producer Client 버전은 독립적으로 관리되므로 혼합 버전 환경에서는 명시적 설정이 필수적이다


분산 이벤트 드리븐 시스템에서 Kafka 버전이 혼재된 환경일 때 enable.idempotence=true, acks=all, retries=Integer.MAX_VALUE, max.in.flight.requests.per.connection=5을 Producer Client에 명시적으로 설정하면 중복 없는 메시지 전송과 순서 보장이 가능하다

원문 읽기