프로듀서에서 실제로 손대게 되는 항목만 정리한다. 기본값은 Kafka 4.3 문서 기준이다[1].
| 항목 | 기본값 | 설명 |
|---|---|---|
acks |
all |
모든 in-sync 복제본이 받아야 성공으로 본다 |
enable.idempotence |
true |
재전송으로 인한 중복을 브로커가 걸러낸다 |
retries |
2147483647 |
사실상 무제한. 실제 한계는 delivery.timeout.ms 가 정한다 |
acks와enable.idempotence기본값은 3.0 부터 안전한 쪽으로 바뀌었다. 내리지 않는다.
acks=all이 실효를 가지려면 브로커 쪽min.insync.replicas가 2 이상이어야 한다. 1이면 복제본 하나만 받아도 성공이 된다.
| 항목 | 기본값 | 설명 |
|---|---|---|
batch.size |
16384 |
파티션별 배치 크기(byte). 처리량이 목적이면 64~256KB |
linger.ms |
5 |
배치가 찰 때까지 기다리는 시간 |
compression.type |
none |
lz4 가 CPU 대비 효율이 좋다. 저장 공간이 급하면 zstd |
buffer.memory |
33554432 |
전송 대기 버퍼 총량 (32MiB) |
max.in.flight.requests.per.connection |
5 |
멱등성이 켜져 있으면 5까지 순서가 보장된다 |
linger.ms 기본값은 4.0 에서 0 에서 5 로 바뀌었다. 배치가 커져 처리량이 오르는 대신 지연이 조금 늘어난다.
| 항목 | 기본값 | 설명 |
|---|---|---|
max.request.size |
1048576 |
한 요청의 최대 크기 (1MiB) |
메시지 하나가 이 값을 넘으면 RecordTooLargeException 이 난다 — RecordTooLargeException 을 볼 것.
| 항목 | 기본값 | 설명 |
|---|---|---|
delivery.timeout.ms |
120000 |
send() 부터 성공/실패가 확정되기까지의 총 한도 |
request.timeout.ms |
30000 |
한 번의 요청이 응답을 기다리는 시간 |
delivery.timeout.ms 는 linger.ms + request.timeout.ms 이상이어야 한다.
/opt/kafka/bin/kafka-producer-perf-test.sh --topic perf \
--num-records 1000000 --record-size 1024 --throughput -1 \
--producer-props bootstrap.servers=kafka01:9092 acks=all
Kafka 4.3 Producer Configs — 2026-09-16 확인. https://kafka.apache.org/43/configuration/producer-configs/ ↩︎