Kafka 高并发设计之数据压缩与批量消息处理
创作时间:
作者:
@小白创作中心
Kafka 高并发设计之数据压缩与批量消息处理
引用
CSDN
1.
https://blog.csdn.net/qq_14855971/article/details/140367731
Kafka是一个高吞吐量、可扩展的分布式消息系统,深入掌握Kafka的数据压缩和批量数据处理机制,对于优化系统性能和资源使用至关重要。本文将详细介绍Kafka支持的压缩算法及其特点,并阐述数据压缩在Kafka中的具体应用。
压缩,是一种用时间换空间的trade-off思想,用CPU的时间去换磁盘或者网络I/O传输量,用较小的CPU开销来换取更具性价比的磁盘占用和更少的网络I/O传输。
Kafka数据压缩机制
数据压缩在Kafka中有助于减少磁盘空间的使用和网络带宽的消耗,从而提升整体性能。通过减少消息的大小,压缩可以显著降低生产者和消费者之间的数据传输时间。
Kafka支持的压缩算法
在Kafka 2.1.0版本之前,Kafka支持3种压缩算法:GZIP、Snappy和LZ4。从2.1.0开始,Kafka正式支持Zstandard算法(简写为zstd)。
一个压缩算法的优劣,有两个重要的指标:压缩比,文件压缩前的大小与压缩后的大小之比,比如源文件占用1000M内存,经过压缩后变成了200M,压缩比=1000/200=5,压缩比越高越高;另一个指标是压缩/解压缩吞吐量,比如每秒能压缩或者解压缩多少M数据,吞吐量越高越好。
如下图是Facebook Zstandard官网提供的一份压缩算法benchmark比较结果:
从图中可以看到,ZSTD压缩比最高,但是吞吐量中规中矩。LZ4在吞吐量方面属于王者。
- GZIP:压缩比高,但压缩和解压缩速度相对较慢。适用于对传输带宽要求较高的场景。
- Snappy:由Google开发,压缩和解压缩速度快,但压缩比相对较低。适用于对性能要求较高的场景。
- LZ4:在压缩和解压缩速度以及压缩比之间取得良好平衡。适用于对性能和压缩比有综合需求的场景。
- ZSTD:由Facebook开发,提供高压缩比和较快的压缩解压速度。适用于对高效压缩和快速处理都有需求的场景。
在Kafka的性能测试结果中,不同压缩算法的两个指标有以下排序特点:
- 吞吐量方面:LZ4 > Snappy > zstd和GZIP;
- 压缩比方面:zstd > LZ4 > GZIP > Snappy。
何时压缩
在生产者端压缩是很自然的想法,大部分情况下Broker收到Producer端的消息后是原封不动的保存,并不会进行压缩。
Kafka数据压缩流程
Kafka的数据压缩主要在生产者端进行。具体步骤如下:
- 生产者配置压缩方式:在KafkaProducer配置中设置
compression.type参数,可以选择gzip、snappy、lz4或zstd。 - 消息压缩:生产者将消息批量收集到一个batch中,然后对整个batch进行压缩。这种批量压缩方式可以获得更高的压缩率。
- 压缩消息存储:压缩后的batch以压缩格式存储在Kafka的主题(Topic)分区中。
- 消费者解压缩:消费者从Kafka主题中获取消息时,首先对接收到的batch进行解压缩,然后处理其中的每一条消息。
热门推荐
国足落入18强赛“死亡之组”,冲击世界杯前景几何?
哮喘治疗与用药指南:西医与中医全方位解析
金鱼风水知识大全:家居布置与寓意解析
骑电动车闯红灯发生交通事故责任认定
《空洞骑士》成就"拥抱虚空"攻略:无上辐光Boss战详解
水瓶座:主要特征、爱情生活等
跟着水熊虫探索极端环境下的生命
梦见死人好吗?从心理学、文化信仰和个人经历三个角度解读
Excel公式计算汇率的多种方法详解
提升投资回报率的有效策略与方法解析
关于雪豹繁育,这些你还不知道→
职场中的八字命理:如何通过个人命盘提升职业发展
塔罗牌中的月亮:揭示潜意识与神秘的象征
AI 数字人的崛起,科技新宠与广泛应用的未来挑战
如何规划的理财策略以实现收益最大化?这种理财规划对个人财富增长有何帮助?
Nature子刊|一文全解狼疮性肾炎相关CKD的管理理念与未来研究方向
公司注销中的简易注销程序:法律依据、适用条件与操作指南
《金融炼金术》背后的秘密,看巫师索罗斯如何玩转金融市场?
河南十大经典名菜 豫菜代表菜都有哪些?
游戏成瘾与学习动力激发研究——多巴胺脉冲式释放与奖赏预测误差机制的神经科学解析
百越与蚩尤:族源的探讨与文化的传承
「父债免子还」适用债务大于遗产时保障 律师提醒要办完这一步才算数
吃搅团凭菜,打官司可不能靠赖——诉讼不知道怎么举证,榆小法这份攻略请查收
英语可数名词单数变复数的规则和不规则变化
医生解答:为什么长时间减肥后会特别想吃肉?
艺考生必看:高铁行李携带规定及遗失物品找回指南
成都天府国际机场停车楼使用指南
墓碑对联中的山水意象与寓意解析
两车相撞,对方车主协商处理:和谐解决争议的典范
宠物有望上高铁?带“毛孩子”坐火车/飞机的实用小贴士来了