生产者压缩算法是什么?何时压缩?什么压缩性能好?

  • 何时压缩?
    • 在Broker和topic也可以配置
      • Broker 端指定了和 Producer 端不同的压缩算法。
      • Broker 端发生了消息格式转换。
  • 何时解压缩?
  • 什么压缩性能好?

压缩(compression)是为了节省空间,并且减少I/O传输量。希望以较小的 CPU 开销带来更少的磁盘占用或更少的网络 I/O 传输。

何时压缩?

Kafka 中,压缩可能发生在两个地方:生产者端Broker 端。

如果在生产者段定义压缩方式就这样写,开启GZIP压缩算法。官网中有说明



默认为none

在Broker和topic也可以配置

查看官方文档可知,在Broker.kafka配置文件中可以配置,在Topic启动参数中也可以配置


通过之前学过的可知 当topic有配置时候会覆盖Broker的配置,并且topic和Broker的默认配置都是producer

默认条件下Broker和topic都尊重 producer的压缩选择。
优先级可以当做(而不是真的当做) topic>Broker>producerr,而具体情况下不要出现以下这种情况:

Broker 端指定了和 Producer 端不同的压缩算法。


白白浪费了资源,而且 Broker 端CPU使用率飙升。

Broker 端发生了消息格式转换。

消息格式转换主要是为了兼容老版本的消费者程序。为了兼容老版本的格式,Broker 端会对新版本消息执行向老版本格式的转换。这个过程中会涉及消息的解压缩和重新压缩。一般情况下这种消息格式转换对性能是有很大影响的,除了这里的压缩之外,它还让 Kafka 丧失了引以为豪的 Zero Copy 特性。

何时解压缩?

Consumer端解压缩、Broker 端也会进行解压缩,在以上介绍中已经大致掌握了压缩解压情况。就不具体重复。

什么压缩性能好?


GZIP、Snappy、LZ4 甚至是 zstd 的表现各有千秋。但对于 Kafka 而言,它们的性能测试结果却出奇得一致,即在吞吐量方面:LZ4 > Snappy > zstd 和 GZIP;而在压缩比方面,zstd > LZ4 > GZIP > Snappy。具体到物理资源,使用 Snappy 算法占用的网络带宽最多,zstd 最少,这是合理的,毕竟 zstd 就是要提供超高的压缩比;在 CPU使用率方面,各个算法表现得差不多,只是在压缩时 Snappy 算法使用的 CPU 较多一些,而在解压缩时 GZIP 算法则可能使用更多的 CPU。

Kafka 生产者压缩算法是什么?何时压缩和解压?什么压缩性能好?相关推荐

  1. java 解压到内存,Java GZip 基于内存实现压缩和解压的方法

    欢迎大家关注本博,同时欢迎大家评论交流,可以给个赞哦!!! GZip是常用的无损压缩算法实现,在Linux中较为常见,像我们在Linux安装软件时,基本都是.tar.gz格式..tar.gz格式文件需 ...

  2. zip压缩文件处理方案(Zip4j压缩和解压)

    主要特性 Create, Add, Extract, Update, Remove files from a Zip file针对ZIP压缩文件创建.添加.抽出.更新和移除文件 Read/Write ...

  3. linux 高效压缩工具xz的压缩和解压使用

    xz是什么 高压缩率的工具,它使用 LZMA2 压缩算法,生成的压缩文件比传统使用的 gzip.bzip2 生成的压缩文件更小, 不过xz也有一个坏处就是压缩时间比较长,比7z压缩时间还长一些.不过压 ...

  4. 【Linux】文件的压缩和解压

    欢迎来到博主 Apeiron 的博客,祝您旅程愉快 ! 时止则止,时行则行.动静不失其时,其道光明. 目录 1.压缩格式 2.压缩软件 3.tar  命令简介 4.tar  命令压缩 5.总结 1.压 ...

  5. 利用python中的gzip模块压缩和解压数据流和文件

    直接给出源码实现, 分为两种情况: 1.网络连接中的数据流的压缩和解压,或是打开的文件读取一部分 2.打开文件压缩或是解压 #!/usr/bin/env python #encoding: utf-8 ...

  6. Qt qCompress和qUncompress 压缩和解压文件

    利用Qt的qCompress和qUncompress来压缩和解压文件 有个特点,用qCompress压缩的文件不能直接用别的软件来解压,需要经过处理,否则只能利用Qt的qUncompress来解压,因 ...

  7. python解压文件_使用Python实现文件压缩和解压

    大家可能都熟悉.zip格式的文件.它可以把多个文件,压缩成一个文件.这在网络上传输时很有用,而且节省硬盘空间. 接下来,我们使用Python实现压缩和解压. 读取ZIP文件信息 要读取ZIP文件的内容 ...

  8. Unity BZip2压缩和解压,基于C#

    基于BZip2的压缩方式(ICSharpCode.SharpZipLib)   压缩和解压代码举例: MemoryStream ms = new MemoryStream();         BZi ...

  9. linux为什么用tar压缩,linux下tar压缩和解压命令用法详解

    linux下tar压缩和解压命令用法详解 2017-03-25 14:06 分享人:老牛 将/usr/local/test目录下所有文件仅打包,不压缩到 /usr/local/auto_bak/目下 ...

  10. Jpeglib使用指南, 各种压缩包的压缩和解压方法, 开源社区分裂史

    http://antkillerfarm.github.io/ Jpeglib使用指南 1.问题的由来 Jpeg图片在图像处理领域已经用的相当广泛了.但在编程领域,尤其是嵌入式编程领域使用的还不是很广 ...

最新文章

  1. mysql数据库常见进阶使用
  2. docker 挂载目录_完美解决:Docker部署SpringBoot项目后图片无法访问和上传,3招搞定!...
  3. RV1108之MiniGui显示参数配置
  4. bootstrap源码分析之Carousel
  5. touch 修改文件时间戳,或者新建一个不存在的文件 - 副本
  6. nVelocity使用简介
  7. iOS 5 Storyboard 学习之 Tabbar Controller,Navigation Controller
  8. c语言实现一个编译器生成语法树,运用JavaScript构造C语言子集的编译器
  9. [IHS] No.2 程序员一生的读书计划
  10. python画图代码大全-Python实现画图软件功能方法详解
  11. 读程士宏《测度论和概率论基础》
  12. 校验一,两位小数0-999999.99,填写其他内容提示“成绩填写有误”
  13. 即将一统天下的OCP NIC 3.0及其未来
  14. 错误的robots文件设置对SEO的影响
  15. 钉钉机器人智能提醒_使用钉钉机器人定时发送消息
  16. html什么用于创建表格的标题,在HTML页面中,()标记用于为表格中的一列指定一个标题(选一项)...
  17. 【Sensors】原始GNSS测量(6)
  18. C语言程序设计教程蒋清明,C语言程序设计教程(第2版)
  19. Python轮子网站及使用方法
  20. 《疯狂动物城》水彩画

热门文章

  1. GIS理论知识(四)之地图的图层(切片/瓦片)概念
  2. 朴素贝叶斯情感分析评分python_「豆瓣影评」从爬取豆瓣影评到基于朴素贝叶斯的电影评论情感分析(上) - seo实验室...
  3. 浪潮配置ipim_NF5280M3 – IPMI设置
  4. python爬取豆瓣电影评论_使用Python抓取豆瓣影评数据的方法
  5. 专家:闽新增11家A级物流企业多受益“信息快车”
  6. 微信公众号录音功能及录音文件下载到自己服务器 一
  7. 我的世界更多附魔EcoEnchants自行编译指南
  8. IOException: Sharing violation on path 异常
  9. 基于Python实现制作的塔防游戏
  10. moby_如何使用Moby Dick探索以主题为主题的开源项目的深度