Kafka(0.9)ConsumerRebalanceListener onPartitionsRevoked not called

时间:2017-08-07 17:41:02

标签: apache-kafka kafka-consumer-api

我们正在为kafka偏移量使用自定义存储空间。分区是自动分配的,我们使用ConsumerRebalanceListener来保存偏移量,清除线程等。

在'onPartitionsAssinged'方法中,我们从自定义商店中查找已分配分区的已提交偏移量。如果未找到任何已提交的偏移量,我们将从kafka获得适当的偏移量(最早/最新)。

根据ConsumerRebalanceListener的javadoc:"保证所有的消费者进程都会调用“onPartitionsRevoked'在任何进程调用' onPartitionsAssigned'之前

但是,我们现在已经看过几次,在重新平衡时,没有调用'onPartitionsRevoked'。直接调用'onPartitionsAssigned',这会使我们的应用程序处于错误状态。

我们简要地查看了代码,看起来代码正在按照javadocs的承诺进行。所以,问题是,是否有任何边缘情况,任何可能触发这种情况的流量?

在两种情况下,我们观察到的一件事是,在尝试从卡夫卡获得抵消时(因为自定义商店中没有抵消),由于过时的领导信息,Fetcher至少重试了一次:

日志: "由于过时的领导信息,尝试获取分区{}的偏移失败,重试。"

请告诉我们。

谢谢!

0 个答案:

没有答案