본문 바로가기
kafka/core

Producer의 max.inflight.requests.per.connection 파라미터와 배치 메시지의 전송 순서 이해

by 개복이 2025. 5. 6.

Producer의 max.inflight.requests.per.connection 파라미터와 배치 메시지의 전송 순서 이해

  • 브로커 서버의 응답없이 Producer의 Sender Thread가 한번에 보낼 수 있는 메시지 배치의 개수. 기본값은 5이다. Kafka Producer의 메시지 전송 단위는 Batch이다.
  • 비동기 전송 시 브로커의 응답없이 한꺼번에 보낼 수 있는 Batch의 개수는 max.inflight.requests.per.connection에 따른다.

 

Producer 메시지 전송 순서와 Broker 메시지 저장 순서 고찰

  • B0가 B1보다 먼저 Producer에서 생성된 메시지 배치
  • max.inflight.requests.per.connection = 2 (>1)에서 B0, B1 2개의 배치 메시지를 전송 시 B1은 성공적으로 기록되었으나 B0의 경우 Write되지 않고 Ack 전송이 되지 않는 Failure 상황이 된 경우 Producer는 B0를 재전송하여 성공적으로 기록되며 Producer의 원래 메시지 순서와는 다르게 Broker에 저장될 수 있다.
  • enable.idempotence=true 설정으로 max.inflight.requests.per.connection이 1보다 큰 경우 발생할 수 있는 메시지 순서 이슈를 해결할 수 있다.

댓글