Producer의 메시지 배치 전송 내부 메커니즘 - linger.ms와 batch.size
- Sender Thread는 기본적으로 전송할 준비가 되어 있으면 Record Accumulator에서 1개의 Batch를 가져갈수도, 여러 개의 Batch를 가져갈 수도 있다.
- linger.ms를 0보다 크게 설정하여 Sender Thread가 하나의 Record Batch를 가져갈 때 일정 시간 대기하여 Record Batch에 메시지를 보다 많이 채울 수 있도록 적용
- max.inflight.requests.per.connection=2이면 Batch를 총 2개까지 가져올 수 있다.
Producer의 메시지 배치 전송 내부 메커니즘 - linger.ms와 batch.size 동작 메커니즘 #1
Producer의 메시지 배치 전송 내부 메커니즘 - linger.ms와 batch.size 동작 메커니즘 #2
Producer의 linger.ms 고찰
- linger.ms를 반드시 0보다 크게 설정할 필요는 없다.
- Producer와 Broker간의 전송이 매우 빠르고 Producer에서 메시지를 적절한 Record Accumulator에 누적된다면 linger.ms가 0이 되어도 무방
- 전반적인 Producer와 Broker간의 전송이 느리다면 linger.ms를 높여서 메시지가 배치로 적용될 수 있는 확률을 높이는 시도를 해볼만 하다.
- linger.ms는 보통 20ms 이하로 설정할 것을 권장한다.
'kafka > core' 카테고리의 다른 글
Producer의 전송/재전송 내부 메커니즘 및 전송 동작 관련 주요 파라미터의 이해 (0) | 2025.05.05 |
---|---|
Producer의 동기(Sync)와 비동기(Async)에서 배치 전송 차이 (0) | 2025.05.04 |
Producer의 메시지 배치 전송 내부 메커니즘 - Record Batch와 Record Accumulator 이해 (0) | 2025.04.29 |
acks 값 설정에 따른 Producer의 전송 방식 차이 이해 (0) | 2025.04.28 |
kafka-dump-log 명령어로 로그 파일의 메시지 내용 확인 (0) | 2025.04.28 |
댓글