apache-kafka - Kafka - 紧凑且基于时间的保留

标签 apache-kafka

我尝试创建一个使用压缩和删除的 Kafka 主题配置,以实现以下目的:

  • 在保留期内,保留最新版本的 key
  • 保留期过后,任何早于要删除的时间戳的消息

为此,我尝试了以下主题特定配置:

cleanup.policy=[compact,delete]
retention.ms=864000000 (10 days)
min.compaction.lag.ms=3600000 (1 hour)
min.cleanable.dirty.ratio=0.1
segment.ms=3600000 (1 hour)

代理配置如下:

log.retention.hours=7 days
log.segment.bytes=1.1gb
log.cleanup.policy=delete
delete.retention.ms=1 day

当我在测试中将其设置为较小的数量时,例如20 分钟、1 小时等,我可以正确地看到数据在保留期后被修剪,只调整主题上的 retention.ms

我可以看到数据已按预期正确压缩,但如果我从头开始阅读该主题,则在 10 天的保留期之后,仍然存在超过 10 天的数据。这是这么长的保留期的问题吗?

我在这里缺少任何配置吗?我已经检查了 kafka 日志,看到代理正在按预期滚动段和压缩,但看不到任何关于删除的信息?

卡夫卡版本是 5.1.2-1

最佳答案

您的主题和代理配置可能会相互覆盖,最终会评估重要性更高的一个。

关于apache-kafka - Kafka - 紧凑且基于时间的保留,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62017959/

相关文章:

apache-kafka - Apache Kafka 使用分区扩展主题

spring-boot - 无法为 EmbeddedKafkaBroker 创建或验证数据目录

java - SpringBoot @KafkaListener 得到 MessageConversionException : Cannot convert from A to B

java - 在 spring-kafka 中禁用连接和消费者创建

kubernetes - 部署在 Kubernetes 上的 Kafka Producer 无法生产到在本地机器上运行的 Kafka 集群

java - AIX 7.1 crontab 中的 Kafka Producer 出现 JAVA 错误 : Bad Major Version

elasticsearch - Kafka 连接器将主题键映射为 ElasticSearch 中的文档 ID

java - 无法发送 SSL 关闭消息

apache-kafka - 如何在kafka中只发送一次avro模式

ssl - kafka - ssl握手失败