apache-kafka - Kafka - 紧凑和基于时间的保留
问题描述
我尝试创建一个使用压缩和删除的 Kafka 主题配置,以实现以下目标:
- 在保留期内,保留最新版本的密钥
- 保留期过后,任何早于时间戳的消息都将被删除
为此,我尝试了以下特定于主题的配置:
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
解决方案
您的主题和代理配置可能会相互覆盖,最终评估具有更高重要性的配置。
推荐阅读
- javascript - Returning an object in an function expression - is null
- excel - 使用 2 个条件创建 vlookup 或索引匹配
- javascript - 获取最小值和最大值
- laravel - 拉拉维尔 | groupBy 作为对象返回
- python - Python 从tripadvisor 抓取“要做的事情”
- php - 数组未定义的偏移量注意 if 条件 [php]
- javascript - Javascript/Node.js 内部如何表示函数?
- node.js - Axios 将我连接到错误的端口
- javascript - 查找两个数组是否在数组中重复,然后选择它们
- sql-server - 无法生成 SSPI 上下文错误,但如果指定了 SPN 服务器名称则不会