在我生成随机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);
在将测试消息写入并刷新到outputStream之后,我根据底层缓冲区位置确定压缩值
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
我在这里错过了什么吗?