Message Compression
Message compression lebih efektif dilakukan saat batch, apalagi dengan data yang lebih besar
Detailnya bisa di cek di
Manfaat compression untuk data batch :
Data yang dikirim producer lebih kecil (up to 4x)
Pengiriman lebih cepat dan low latency
Better throughput
Data dalam disk lebih sedikit
Kekurangan :
Producers harus melakukan commit CPU cylcle compression
Consumers harus melakukan commit CPU cylcle compression
Macam compression
compression.type=producer (default) → Broker ngambil data dari producer yang sudah dikompres dan langsung disimpan di log file tanpa ada recompres.
compression.type=none → Broker melakukan dekompres.
compression.type=lz4 (example) →
Jika sama tipenya antara producer dan broker maka akan langsung di simpan
Jika beda maka akan dilakukan recompres
Tips :
Disarankan untuk tidak mengkompres di broker karena akan makan CPU extra
Coba menerapkan snappy / lz4 untuk performa optimal / compression ration maksimal (bisa di cek di https://blog.cloudflare.com/squeezing-the-firehose/)
Coba tweak linger.ms dan batch.size untuk meningkatkan batch yang lebih besar, compression ratio dan higher throughput