compression.type — Kafka Broker Configuration
Specify the final compression type for a given topic. This configuration accepts the standard compression codecs ('gzip', 'snappy', 'lz4', 'zstd').
Description
Specify the final compression type for a given topic. This configuration accepts the standard compression codecs ('gzip', 'snappy', 'lz4', 'zstd'). It additionally accepts 'uncompressed' which is equivalent to no compression; and 'producer' which means retain the original compression codec set by the producer.
Default Values by Kafka Version
| Kafka Version | Default Value |
|---|---|
| 0.9.0 | producer |
| 0.10.0 | producer |
| 0.10.1 | producer |
| 0.10.2 | producer |
| 0.11.0 | producer |
| 1.0 | producer |
| 1.1 | producer |
| 2.0 | producer |
| 2.1 | producer |
| 2.2 | producer |
| 2.3 | producer |
| 2.4 | producer |
| 2.5 | producer |
| 2.6 | producer |
| 2.7 | producer |
| 2.8 | producer |
| 3.0 | producer |
| 3.1 | producer |
| 3.2 | producer |
| 3.3 | producer |
| 3.4 | producer |
| 3.5 | producer |
| 3.6 | producer |
| 3.7 | producer |
| 3.8 | producer |
| 3.9 | producer |
| 4.0 | producer |
| 4.1 | producer |
| 4.2 | producer |
Tuning Recommendation
| Profile | Recommended | Why |
|---|---|---|
| producer / throughput | lz4 | LZ4 compresses text/JSON payloads by 3-5x at near-memory-bandwidth speed (~500MB/s on modern CPUs), dramatically reducing network bytes and broker write amplification with minimal CPU overhead. |
| producer / latency | none | No compression is the right choice for latency: even LZ4 at level 1 adds 0.1-0.5ms of CPU time per batch and requires a full batch to be assembled before compression runs, which conflicts with the linger.ms=0 strategy. |
| broker / throughput | producer | Keep broker compression passthrough ('producer'). Re-compressing at the broker wastes CPU doing decompression + recompression for format validation; the producer already sends compressed batches. Changing to a different codec forces broker-side decompression of every batch. |
Related Configs
batch.size · max.request.size · compression.lz4.level · linger.ms · message.max.bytes · num.io.threads
Manage Kafka configs across all your clusters with Conduktor Console — view, compare, and update configurations in one place.