gpt4 book ai didi

apache-kafka - 卡夫卡不删除带有墓碑的 key

转载 作者:行者123 更新时间:2023-12-04 05:17:28 26 4
gpt4 key购买 nike

我创建了一个具有以下属性的 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:空

根据文档,

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

最佳答案

墓碑记录按设计保存得更久。原因是,经纪人不跟踪消费者。假设消费者在阅读第一条记录后离线一段时间。当消费者宕机时,日志压缩开始。如果日志压缩会删除墓碑记录,消费者将永远不会知道记录已被删除的事实。如果消费者实现了缓存,则记录可能永远不会被删除。因此,tombstone 被保留更长时间,以允许离线消费者接收所有 tombstone 进行本地清理。

只有在 delete.retention.ms 之后才会删除墓碑(默认值为 1 天)。注意:这是一个主题级别的配置,没有代理级别的配置。因此,如果要更改它,则需要为每个主题设置配置。

关于apache-kafka - 卡夫卡不删除带有墓碑的 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46632713/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com