Kafka 组 id 偏移量在重新平衡后没有保持

问题描述 投票:0回答:1

我的应用程序有一个带有单个分区的 kafka 主题(kafka 2.4.0)。有一个组 ID,多个订阅者(多个 AWS EC2 实例)从中读取。最近的一项工作是将大约三百万条记录导入我们的系统,导致数百万条消息被发送到主题并被消费者组阅读。

从主题读取时,应用程序会注销偏移量。出于某种原因,偏移量存在差距(大约五万),这意味着我们丢失了一些消息。关于为什么会发生这种情况的唯一线索是以下日志消息:

“尝试心跳失败,因为组正在重新平衡 撤销之前分配的分区 (重新)入群”

也许服务器或进程因任何原因崩溃,并且消费者离开/加入导致此日志消息的组。但是,我希望活跃的消费者从读取的最后一个偏移量开始继续。由于偏移量差距很大,它似乎花了一段时间并将自己重置为主题中的当前(最后一个)偏移量。

我的问题是重新平衡如何/为什么会导致失去当前的偏移量?

应用程序已经存在了一段时间,但这是第一次遇到这样的负载,并且还记录了重新平衡相关的日志消息。未来会有类似负载的测试,但到目前为止我还没有尝试重现这个问题。

apache-kafka offset
1个回答
0
投票

partions 的数量必须大于或等于单个 group id 中的消费者数量。这与kafka偏移系统密切相关。

看这篇文章。

https://www.oreilly.com/library/view/kafka-the-definitive/9781491936153/ch04.html

特别是内容图4-4可能描述了你的情况。

© www.soinside.com 2019 - 2024. All rights reserved.