卡夫卡复位工具 消费者偏移量不复位为零



我正在尝试理解一些基本的Kafka概念,以便我可以正确监控基于KafkaStreams的应用程序的进度。

特别是出于调试目的,我需要能够让我的应用程序重新使用整个主题。为此,我使用了重置工具。

在执行脚本查看 Kafka 管理器中的某些输入主题后,我看到Consumer Offset减少了,Lag增加了(这是有道理的)。虽然Consumer Offset不会归零。我试图解释这一点,但我还没有找到关于 Kafka Manager 中Consumer OffsetLogsize所指的具体解释。

为了使它符合我所看到的,我假设Logsize是自主题开始以来放入主题的消息总数,但不一定是主题中当前的消息数量。因为有些人可能因为年龄超过保留期而被扔掉。我说的对吗?

如果不是,那么在为某些输入主题运行重置工具后,我观察到Consumer Offset等于Logsize(而不是零)并且Lag为零这一事实背后的解释是什么?

我不熟悉yahoo-kafka-manager,但是,您也可以使用bin/kafka-consumer-groups.sh(Kafka本身附带的工具)。那里的对数结束偏移量意味着您所描述的内容。从命名的角度来看,我不清楚Logsize是否与"日志结束偏移量"相同,也不清楚分区中最高和最低偏移量之间的差异。

在执行脚本查看 Kafka 管理器以获取某些输入主题后,我看到消费者偏移量减少了,滞后增加了。

这是有道理的 - 由于"滞后"是"日志结束偏移"和"提交偏移"的区别,因此在重置应用程序后应增加滞后。但是,我不确定为什么承诺的消费者组偏移量不为零(您能否非常使用bin/kafka-consumer-group.sh观察到的内容 - 也许yahoo-kafka-manager报告一些不同的东西)。

更新:但是该工具不会将偏移量设置为零,而是设置为"日志开头"。(文档不正确。

另请注意,在您重置应用程序并重新启动它后,auto.offset.reset策略可能会插入(如果日志被截断,[已提交的] 偏移量零可能无效)。这能解释你观察到的行为吗?

这篇博文也可能有助于了解更多详细信息:https://www.confluent.io/blog/data-reprocessing-with-kafka-streams-resetting-a-streams-application/

最新更新