Kafka GZIP,Snappy和LZ4压缩的行为

时间:2018-04-17 04:20:45

标签: apache-kafka kafka-producer-api

在我生成随机10MB +字符串的测试中,我看到只有gzip在生产者上设置时提供任何压缩值,snappy和lz4实际上都在添加字节

COMPRESSION TYPE: gzip, ORIGINAL: 10485019, COMPRESSED: 7364618
COMPRESSION TYPE: snappy, ORIGINAL: 10485019, COMPRESSED: 10488238
COMPRESSION TYPE: lz4, ORIGINAL: 10485019, COMPRESSED: 10485666
COMPRESSION TYPE: none, ORIGINAL: 10485019, COMPRESSED: 10485019

要获取压缩内容值,我在KafkaProducer中执行的操作通过CompressionType.wrapForOutput创建OutputStream

OutputStream outputStream =
            compressionType.wrapForOutput(byteBufferOutputStream, (byte) 0);

在将测试消息写入并刷新到ou​​tputStream之后,我根据底层缓冲区位置确定压缩值

int compressed = byteBufferOutputStream.buffer().position

我使用来自主干kafka-1.2.0-SNAPSHOT

的最新版本

每次使用DumpLogSegments工具在主题分区日志中验证压缩编解码器是否正确

bin/kafka-run-class.sh kafka.tools.DumpLogSegments --files /tmp/kafka-logs/test-0/00000000000000000000.log -print-data-log 

我在这里错过了什么吗?

0 个答案:

没有答案