美文网首页
Kafka-压缩算法

Kafka-压缩算法

作者: 码界西柚 | 来源:发表于2022-03-01 13:22 被阅读0次

一、kafka压缩几点说明

首先说明一点kafka的压缩和kafka的compact是不同的,compact就是相同的key只保留一条,是数据清理方式的一种和kafka的定期删除策略是并列的;而kafka的压缩是指数据不删除只是采用压缩算法进行压缩。

kafka从0.7版本就开始支持压缩功能:

1)kafka的发送端将消息按照批量(如果批量设置一条或者很小,可能有相反的效果)的方式进行压缩。

2)服务器端直接将压缩消息保存(特别注意,如果kafka的版本不同,那么就存在broker需要先解压缩再压缩的问题,导致消耗资源过多)。

3)消费端自动解压缩,测试了下,发送端无论采用什么压缩模式,消费端无论设置什么解压模式,都可以自动完成解压缩功能。

4)压缩消息可以和非压缩消息混存,也就是说如果你kafka里面先保存的是非压缩消息,后面改成压缩,不用担心,kafka消费端自动支持。

二、kafka压缩算法种类和性能区别

测试的kafka版本:kafka_2.12-1.1.1

测试的kafka客户端版本:0.10.2.1

测试数据的条数:20000

kafka支持三种压缩算法,lz4、snappy、gzip,

压缩算法大小压缩比生成耗时(毫秒)消费耗时(毫秒)

None8.2MB0473917464

gzip1.9 MB23%468416257

snappy3.2 MB39%393616726

lz42.9 MB35%372317229

测试遇到疑问,开始非压缩算法发送2万条大小为16MB,后面再发送到gzip的时候大小竟然自动变成了8.2MB,采用的是delete模式,估计可能是日志之类的,snappy也有类似的现象开始是4.0MB,后面log大小缩小为3.2MB,有朋友知道麻烦告知。

我怀疑可能是版本原因导致数据重新被压缩,1.1.1优化的更好,所以压缩效果更好

通过上面数据来看,gzip的压缩效果最好,但是生成耗时更长,snappy和lz4的数据差不多,更倾向于lz4,具huxi大神的书上所说kafka里面对snappy做了硬编码,所以性能上最好的是lz4,推荐使用此压缩算法。

压缩率对比:

image

图:http://i.stack.imgur.com/LPCSe.png

性能对比图:

image

网上找来图

压缩设置

很简单:

/compressType有四种取值:none lz4 gzip snappy/props.put(ProducerConfig.COMPRESSION_TYPE_CONFIG,compressType);

其他说明

消费端无论设置什么压缩模式,都可以正确的解压kafka的消息,也就是说消费端可以不设置解压缩,

不过可能性能有所下降。

相关文章

  • Kafka-压缩算法

    一、kafka压缩几点说明 首先说明一点kafka的压缩和kafka的compact是不同的,compact就是相...

  • LZW压缩算法

    参考链接:超级简单的数据压缩算法—LZW算法压缩算法——lzw算法实现LZW算法 LZW 压缩算法正确图解

  • web学习心得V1.0

    [TOC] 知识梳理 第一层级 算法 压缩算法 压缩算法主要有霍夫曼编码压缩和LZ77算法。霍夫曼算法利用建立霍夫...

  • Linux压缩及归档

    1、归档和压缩 压缩命令工具:gzip,bzip2,xz,zip 归档命令工具:tar Tips 压缩算法:算法不...

  • Linux-压缩、解压缩

    压缩格式:gz, bz2, xz, zip, Z压缩算法:算法不同,压缩比也会不同; compress: FILE...

  • hadoop 数据压缩

    1. hadoop checknative 可以查看hadoop 支持的压缩算法 2. 启用压缩算法总体来说 节...

  • 算法解析:哈夫曼(huffman)压缩算法

    前言 本篇将介绍哈夫曼压缩算法(Huffman compression) 哈夫曼压缩算法(Huffman comp...

  • Flink实战之FileSystem-parquet支持ZSTD

    前言 ZSTD压缩算法是现在最流行压缩算法了,有着高压缩比和压缩性能强的有点,已经被各大框架所使用。目前hadoo...

  • Android

    Android常用图片压缩方式 质量压缩 尺寸压缩 1. 质量压缩 质量压缩通过相应算法进行优化Bitmap的位深...

  • 如何设计短url系统

    1、 不要幻想使用压缩算法,对于URL这种不超过100bytes的字符串,压缩算法的压缩比通常都大于1。2、 不要...

网友评论

      本文标题:Kafka-压缩算法

      本文链接:https://www.haomeiwen.com/subject/sowsrrtx.html