kafka生产者设置gzip压缩, 生产端在发送大量消息时中间有一段时间阻塞很久?

傍窗观雨淞 发表于: 2021-05-18   最后更新时间: 2021-05-18 10:47:10   79 游览

在需要大量(百万级)发送消息(消息大小从5kb到16kb不等)的场景下时,我发现设置gzip压缩,我发现设置为gzip之后,生产中间阻塞了3分钟,才继续发送消息, 请问你能解释这其中的缘由吗? 是因为压缩本身就需要花这么多少时间吗?



发表于 1月前

kafka默认支持 'gzip', 'snappy', 'lz4'。效率不阐述了,网上一大堆,其中

压缩率 = 文件压缩后的大小与压缩前的大小之比。

压缩率一般是越小越好,但是越小,一般解压时间也越长(不过已经在消费者端了)。

压缩没有特别的逻辑,就是将你即将发送的消息,通过以上压缩技术,进行压缩后,发送给kaka。

适合的场景:

  • 如果cpu负载比较高,不适合启用压缩;
  • 如果带宽不足,而cpu负载不高,最适合启用压缩,节约大量的带宽;

所以你关注一下你cpu的利用率。

是不是kafka生产者进行压缩时会阻塞producer.send()

找不到想要的答案?

我要提问
提问