论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
物联网
›
物联网
›
Kafka 高并发设计之数据压缩与批量消息处置惩罚 ...
Kafka 高并发设计之数据压缩与批量消息处置惩罚
三尺非寒
金牌会员
|
2024-7-19 09:54:45
|
显示全部楼层
|
阅读模式
楼主
主题
674
|
帖子
674
|
积分
2022
《Kafka 高性能架构设计 7 大秘诀》专栏第 6 章。
压缩,是一种用时间换空间的 trade-off 思想,用 CPU 的时间去换磁盘或者网络 I/O 传输量,用较小的 CPU 开销来换取更具性价比的磁盘占用和更少的网络 I/O 传输。
Kafka 是一个高吞吐量、可扩展的分布式消息系统,深入掌握 Kafka 的数据压缩和批量数据处置惩罚机制,对于优化系统性能和资源利用至关重要。
Kafka 数据压缩机制
数据压缩在 Kafka 中有助于减少磁盘空间的利用和网络带宽的消耗,从而提拔整体性能。
通过减少消息的大小,压缩可以明显降低生产者和消耗者之间的数据传输时间。
Chaya:Kafka 支持的压缩算法有哪些?
在 Kafka 2.1.0 版本之前,Kafka 支持 3 种压缩算法:GZIP、Snappy 和 LZ4。从 2.1.0 开始,Kafka 正式支持 Zstandard 算法(简写为 zstd)。
Chaya:这么多压缩算法,我怎样选择?
一个压缩算法的优劣,有两个重要的指标:压缩比,文件压缩前的大小与压缩后的大小之比,比如源文件占用 1000 M 内存,经过压缩后变成了 200 M,压缩比 = 1000 /200 = 5,压缩比越高越高;另一个指标是压缩/解压缩吞吐量,比如每秒能压缩或者解压缩多少 M 数据,吞吐量越高越好。
如下图是 Facebook Zstandard 官网提供的一份压缩算法 benchmark 比较结果:
从图中可以看到,ZSTD 压缩比最高,但是吞吐量中规中矩。LZ4 在吞吐量方面属于王者。
GZIP
:压缩比高,但压缩息争压缩速度相对较慢。实用于对传输带宽要求较高的场景。
Snappy
:由 Google 开发,压缩息争压缩速度快,但压缩比相对较低。实用于对性能要求较高的场景。
LZ4
:在压缩息争压缩速度以及压缩比之间取得良好平衡。实用于对性能和压缩比有综合需求的场景。
ZSTD
:由 Facebook 开发,提供高压缩比和较快的压缩解压速度。实用于对高效压缩和快速处置惩罚都有需求的场景。
在 Kafka 的性能测试结果中,不同压缩算法的两个指标有以下排序特点。
吞吐量方面:LZ4 > Snappy > zstd 和 GZIP;
压缩比方面:zstd > LZ4 > GZIP > Snappy。
何时压缩
Chaya:我觉得可以在生产者和 Broker 端进行压缩,对么?
在生产者端压缩是很自然的想法,
大部分情况下 Broker 收到 Producer 端的消息后是原封不动的生存,并不会进行压缩
。
生产者压缩
Kafka 的数据压缩主要在生产者端进行。详细步骤如下:
生产者配置压缩方式
:在 KafkaProducer 配置中设置 compression.type 参数,可以选择 gzip、snappy、lz4 或 zstd。
消息压缩
:生产者将消息批量收集到一个 batch 中,然后对整个 batch 进行压缩。这种批量压缩方式可以得到更高的压缩率。
压缩消息存储
:压缩后的 batch 以压缩格式存储在 Kafka 的主题(Topic)分区中。
消耗者解压缩
:消耗者从 Kafka 主题中获取消息时,首先对接收到的 batch 进行解压缩,然后处置惩罚其中的每一条消息。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
三尺非寒
金牌会员
这个人很懒什么都没写!
楼主热帖
Java多线程超级详解(只看这篇就够了) ...
微信小程序--点餐系统(本地服务器+源 ...
Centos7安装Mysql5.7(超详细版) ...
可观测性之两大误区
GPRS与4G网络:技术差异与应用选择 ...
Yarn平滑下线节点(Graceful Decommiss ...
环形缓冲区 Ring Buffer 的实现 ...
小白也可以轻松破解被加密的ZIP口令啦 ...
计算机网络-IP地址
公司入职一个阿里大佬,把 Spring Boot ...
标签云
挺好的
服务器
快速回复
返回顶部
返回列表