kafka默认支持 'gzip', 'snappy', 'lz4'。效率不阐述了,网上一大堆,其中
压缩率 = 文件压缩后的大小与压缩前的大小之比。
压缩率一般是越小越好,但是越小,一般解压时间也越长(不过已经在消费者端了)。
压缩没有特别的逻辑,就是将你即将发送的消息,通过以上压缩技术,进行压缩后,发送给kaka。
适合的场景:
所以你关注一下你cpu的利用率。
是不是kafka生产者进行压缩时会阻塞producer.send()
?
以下是我的生产者配置参数:
properties:
linger.ms: 30
max.in.flight.requests: 10
buffer.memory: 536870912
batch.size: 1048576
增大了batch.size
之后,快很多, 但是Failed to allocate memory within the configured max blocking time 60000 ms. 出现异常