首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从kafka中删除旧消息而不是最近的消息

如何从kafka中删除旧消息而不是最近的消息
EN

Stack Overflow用户
提问于 2020-09-02 19:11:51
回答 1查看 207关注 0票数 1

我正在试着从kafka中删除旧的消息,它没有像预期的那样工作。我已经配置了kafka rentension.ms,log.cleanup属性也。但是它在5分钟后没有删除旧的消息。这是配置,在5分钟内,新消息也会发布,尽管kafka主题中存在较旧的记录。您能帮我解决这个配置中缺失的问题吗?因为它增加了存储成本。

-config retention.bytes=-1 --配置cleanup.policy=delete --配置retention.ms=300000

EN

回答 1

Stack Overflow用户

发布于 2020-09-02 19:28:24

首先,如cleanup.policy的配置描述中所述,LogCleaner将只删除主题的旧片段上的数据,了解这一点很重要

“一个字符串,可以是"delete”或"compact“,也可以是”compact“和”delete“。此字符串指定要在日志段上使用的保留策略。”

很可能您的所有数据仍然在一个段中,因此您需要减少主题的segment.bytes配置,这样您才能真正获得“旧”段。此配置默认为1 1GB,描述为:

“此配置控制日志的段文件大小。保留和清理始终一次完成,因此较大的段大小意味着较少的文件,但对保留的细粒度控制较少。”

如果您不想等到某个段被填满,也可以随意将配置segment.ms从默认值7天减少到更适合您的情况。此配置描述为:

“此配置控制一段时间后,Kafka将强制日志滚动,即使段文件未满,以确保保留可以删除或压缩旧数据。”

如果您的保留时间很短,比如5分钟,那么您可能还希望将代理范围内的配置log.cleaner.delete.retention.ms从默认值1天减少到一个较低的值。此配置描述为:

“删除记录保留多长时间?”

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63704272

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档