【发布时间】:2018-03-19 20:27:24
【问题描述】:
我使用以下属性创建了一个 kafka 主题
min.cleanable.dirty.ratio=0.01,delete.retention.ms=100,segment.ms=100,cleanup.policy=compact
假设我按顺序插入 k-v 对 1111:1、1111:2、1111:null、2222:1 现在发生的是除了最后一条消息,日志压缩在其余消息上运行并清除前两条但保留 1111:null
根据文档,
Kafka log compaction also allows for deletes. A message with a key and a null payload acts like a tombstone, a delete marker for that key. Tombstones get cleared after a period.
所以,我希望当 delete.retention.ms 实现时,空标记应该删除带有键 1111
的消息我有两个问题 - 为什么墓碑标记不起作用?为什么最后一条消息从压缩中被忽略?
这就是 server.properties 文件的内容 -
log.retention.ms=100
log.retention.bytes=1073741824
log.segment.bytes=1073741824
log.retention.check.interval.ms=100
log.cleaner.delete.retention.ms=100
log.cleaner.enable=true
log.cleaner.min.cleanable.ratio=0.01
【问题讨论】:
标签: apache-kafka