我试图了解 Kafka 压缩的工作原理并有以下问题:Does kafka guarantees uniqueness of keys for messages stored in the topic with enabled compaction?
谢谢!
最佳答案
简短的回答是否定的。
Kafka 不保证在启用主题保留的情况下存储的 key 的唯一性。
在卡夫卡你有两种类型的 cleanup.policy
:
delete
- 这意味着在配置的时间消息将不可用。有几个属性可用于此:log.retention.hours
, log.retention.minutes
, log.retention.ms
.默认 log.retention.hours
已设置 168
.这意味着,早于 7 天的消息将被删除compact
- 对于每个键,至少有一条消息可用。在某些情况下它可以是一个,但在大多数情况下它会更多。已处理的压实定期在后台运行。它通过删除重复项并仅保留最后一个值来复制日志部分。如果你只想为每个键读取一个值,你必须使用KTable<K,V>
来自 Kafka Streams 的抽象。
关于键和压缩的最新值的相关问题: Kafka only subscribe to latest message?
https://stackoverflow.com/questions/54298063/