用于重复数据删除的Kafka压缩

i47*_*898 1 apache-kafka

我试图理解Kafka压缩是如何工作的并且有以下问题:kafka是否保证在启用压缩的主题中存储的消息的密钥的唯一性?

谢谢!

war*_*iak 5

简短的回答是否定的.

Kafka不保证在启用主题保留的情况下存储密钥的唯一性.

在卡夫卡,你有两种类型cleanup.policy:

  • delete - 这意味着在配置好的时间后,消息将无法使用.有几个属性,可以用来为:log.retention.hours,log.retention.minutes,log.retention.ms.默认log.retention.hours设置168.这意味着,消息年长超过7天将被删除
  • compact - 对于每个密钥,至少有一条消息可用.在某些情况下它可以是一个,但在大多数情况下它会更多.处理的压缩定期在后台运行.它复制日志部分,删除重复项,只留下最后一个值.

如果您只想为每个键读取一个值,则必须使用Kafka Streams的KTable<K,V>抽象.

关于密钥和压缩的最新价值的相关问题: Kafka只订阅最新消息?