728x90
max.in.flight.request.per.connection

- 브로커 서버의 응답없이 Producer의 Sender thread가 한번에 보낼 수 있는 메시지 배치의 갯수
- default 값은 5로, kafka producer 의 메시지 전송 단위는 Batch이다.
- 비동기 전송 시 브로커의 응답 없이 한꺼번에 보낼 수 있는 Batch의 갯수는 max.in.flight.per.connection에 따름
Producer 메시지 전송 순서와 Brocker 메시지 저장 순서

- B0 이, B1보다 먼저 Producer에서 생성된 메시지 배치
- max.in.flight.requests.per.connectio = 2(1보다 클 경우)에서 B0,B1 2개의 배치 메시지를 전송.
- B1은 성공적으로 기록되었으나, B0의 경우 Write 되지 않고 Ack 전송이 되지 않는 Failure 상황이 됨
- Producer는 B0를 재전송하여 성공처리 할 수 있으나, Producer의 원래 메시지 순서와는 다르게 Brocker에 저장될 수 있음
- 보통은 분산 시스템에서 순서를 보장하지 않는게 일반적이나,. 순서 보장이 반드시 필요하다면, enable.idempotence 옵션을 true로 설정해서 순서 보장을 할 수 있다.
728x90
'카프카 > Java 기반 카프카 클라이언트 구현, Producer 내부 메커니즘 2' 카테고리의 다른 글
| Custom Partitioner로 메시지의 특정 Partition 설정하기 (0) | 2025.10.04 |
|---|---|
| idempotence(멱등성) 기반 중복 없이 전송 (0) | 2025.10.04 |
| Producer의 전송/재전송 내부 메커니즘 및 재전송 동작 관련 주요 파라미터 (0) | 2025.09.30 |
| Producer의 메시지 배치 전송 내부 메커니즘 (0) | 2025.09.29 |
| acks 값 설정에 따른 Producer의 전송 방식 차이 이해 (0) | 2025.09.29 |