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

我试图了解 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/

相关文章:

python - 如何从兄弟目录导入python模块?

spring-boot - 斯波克测试 : Too few invocation

python - 获取数组的最后一个索引的时间复杂度是多少?

python-3.x - Pandas df.to_sql 不适用于红移

python - Pandas 中 "&"和 "and"之间的区别

python - 使用多行字符串时的缩进

amazon-s3 - 将名称包含尾部斜杠的文件上传到 AWS S3 存储桶

r - 如何在绘图中制作垂直线段?

firebase - 限制经过身份验证的用户访问 Firestore

angular - 如何从测试代码中触发 Angular Material MatSelect 上的