- Payload(전송 데이터) 크기는 아래 Kafka의 설정 값에 영향을 끼친다.
- batch size
- 한 배치에 담을 최대 바이트 수
- 작은 payload: 배치가 금방 차지 않아 전송 빈도가 높아져 네트워크 오버헤드 증가
- 큰 payload: batch.size 를 payload 크기보다 크게 설정해야 한 번에 묶어서 전송 가능
- 예: payload 10 KB인데 batch.size=16 KB → 배치당 1개씩만 묶임
- batch.size=64 KB 로 늘리면 payload 3~4개씩 한 번에 전송
- linger.ms
- linger.ms 동안 배치가 가득 차지 않아도 대기 후 전송
- payload 크기 클수록 “가득 채우는 시간”이 길어지니
- Throughput
- payload 크기↑ → per-message 오버헤드↑
- 압축(
compression.type) 효과가 payload 크기에 따라 달라짐
- 네트워크 대역폭 포화 여부, broker 디스크 쓰기량 검토 필요
- throughput (msg/s) 은 payload 크기와 batch 효율에 의해 결정
- Broker·Consumer
broker.message.max.bytes: 브로커가 허용하는 최대 메시지 크기 (기본 1 MB)
- fetch.min.bytes / fetch.max.wait.ms (Consumer):
- fetch.min.bytes 를 높이면 payload가 클 때 배치 크기 제어 가능
- fetch.max.wait.ms 를 조정해 “작은 배치라도 얼마만큼 대기 후 반환” 제어
- 메모리·GC·운영
- payload 크기↑ → JVM Heap·GC 부하↑
- Consumer 쪽
max.poll.records 나 max.partition.fetch.bytes 설정 검토
- 대용량 payload의 경우 streaming API 로 처리하거나 consumer 스레드 수 조정