我在Kafka 0.8.1.1中的server.properties文件中进行了更改,即在创建主题时添加log.cleaner.enable=true
并启用cleanup.policy=compact
了.现在,当我测试它时,我将以下消息推送到主题,其中包含以下内容(Key,Message).
偏移量:1 - (123,abc);
偏移量:2 - (234,def);
抵消:3 - (345,ghi);
抵消:4 - (123,已更改)
现在我用与早期输入相同的键推送第4条消息,但更改了消息.这里的日志压缩应该会出现.使用Kafka工具,我可以看到主题中的所有4个偏移.我怎么知道日志压缩是否有效?是否应删除先前的消息,或者在推送新消息时日志压缩工作正常.是否有做的任何事情log.retention.hours
或topic.log.retention.hours
或log.retention.size
配置?这些配置在日志压缩中的作用是什么.PS - 我已经彻底浏览了Apache文档,但仍然不清楚.
即使这个问题已经有几个月了,我也只是在为自己的问题做研究.我创建了一个最小的例子来看看压缩如何与Java一起工作,也许它对你也有帮助:
https://gist.github.com/anonymous/f78184eaeec3ee82b15182aec24a432a
此外,在查阅文档时,我在主题级别使用了以下配置,以便尽快启动压缩:
min.cleanable.dirty.ratio=0.01 cleanup.policy=compact segment.ms=100 delete.retention.ms=100
运行时,此类显示压缩有效 - 只有一条消息在主题上具有相同的键.
通过适当的设置,这可以在命令行上重现.