首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Kafka去重消息

Kafka去重消息
EN

Stack Overflow用户
提问于 2021-04-18 05:57:21
回答 2查看 192关注 0票数 0

我们有一个内存不足的错误,导致数以亿计的重复消息被添加到主题中。有没有办法暂停所有服务,修复主题并删除重复的内容?卡夫卡新手来了..。

EN

回答 2

Stack Overflow用户

发布于 2021-04-18 06:12:04

Kafka记录是不可变的,这意味着您无法删除或更新记录。Kafka分区是仅附加的结构。

但如果您使用delete retention policy作为topic,并且这些重复消息具有相同的密钥,则可以通过将delete.retention.ms配置更新为少量来删除重复消息。这称为日志压缩。同样,只有当重复的消息具有相同的键时,这才有效。

如果它们没有相同的密钥,我猜你可以做的是:

删除此主题中的所有记录到内存或data store.

  • Identify复制消息并删除它们。删除您的topic.

  • Recreate topic.

  • Produce
  • 消息到您的主题。
  • 让您的应用程序再次侦听该主题。

或者你也可以这样做:

  • 使用此主题中的所有记录到内存或data store.
  • Identify中复制消息,并将唯一消息删除到新主题中。
  • 允许您的应用程序侦听新创建的旧主题。

但在执行此过程时,应仔细考虑数据丢失。

票数 1
EN

Stack Overflow用户

发布于 2021-11-08 06:39:35

您可以使用紧凑主题(cleanup.policy = compact)来减少内存,但使用此配置不能获得唯一记录。

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

https://stackoverflow.com/questions/67143325

复制
相关文章

相似问题

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