ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

kafka 生产者压缩

2022-08-11 13:01:00  阅读:160  来源: 互联网

标签:生产者 压缩 解压缩 Broker kafka props 压缩算法


kafka 生产者压缩

在kafka 中,压缩可能发生在两个地方:生产正端和消费者端。

一般遵循Producer 端压缩、Broker 端保持、Consumer 端解压缩

生产者端-压缩

生产者程序中配置 compression.type 参数即表示启用指定类型的压缩算法

Properties props = new Properties(); 
props.put("bootstrap.servers", "localhost:9092"); 
props.put("acks", "all");
props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer"); 
props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer"); 
// 开启GZIP压缩 
props.put("compression.type", "gzip"); 
Producer producer = new KafkaProducer<>(props);

Broker 端-压缩

一般遵循Producer 端压缩、Broker 端保持,但是broker 也会进行压缩的情况,例如以下两种情况:

情况一:Broker 端指定了和 Producer 端不同的压缩算法

Producer 说:“我要使用 GZIP 进行压缩。”

Broker 说:“不好意思,我这边接收的消息必须使用 Snappy 算法进行压缩。”

情况二:Broker 端发生了消息格式转换。

所谓的消息格式转换主要是为了兼容老版本的消费者程序。

broker 端解压缩

除了在 Consumer 端解压缩,Broker 端也会进行解压缩。每个压缩过的消息集合在 Broker 端写入时都要发生解压缩操作,目的就是为了对消息执行各种验证。

生产者端-解压缩

消息从Producer到Broker在到Consumer会一直携带消息的压缩方式,这样当 Consumer 读取到消息集合时,它自然就知道了这些消息使用的是哪种压缩算法。

各种压缩算法对比

Kafka 支持 3 种压缩算法:GZIP、Snappy 、LZ4、Zstandard。(每个版本之间会有差异)

压缩算法的重要指标:

压缩比,原先占 100 份空间的东西经压缩之后变成了占 20 份空间,那么压缩比就是 5,显然压缩比越高越好。

压缩 / 解压缩吞吐量,比如每秒能压缩或解压缩多少 MB 的数据。同样地,吞吐量也是越高越好。

image-20220724100534689

参考:

https://blog.csdn.net/kafka_zsxq/article/details/122336727

标签:生产者,压缩,解压缩,Broker,kafka,props,压缩算法
来源: https://www.cnblogs.com/shix0909/p/16575677.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有