首页 > 解决方案 > 当另一个消费者加入同一个组时,分配给一个消费者的所有暂停分区都将被撤销

问题描述

我有一个消费者订阅了一个主题,它正在轮询 3 个分区。由于我的特定用例,此使用者调用pause(TopicPartition)方法,因此所有分区都将设置为暂停。无论如何,它会继续轮询以发送心跳。然后,第二个消费者加入同一个组。协调器重新平衡分区。预计这 3 个分区在两个消费者之间是平衡的,但是所有分区 (3) 都从第一个消费者撤消,并将它们分配给第二个消费者。

我可以在我的第一个消费者中在重新平衡时验证这一点(所有分区都处于暂停状态)。Coordinator 调用 ConsumerRebalanceListener.onPartitionsRevoked 但它从不调用 ConsumerRebalanceListener.onPartitionsAssigned

为什么 Coordinator 会撤销第一个消费者的所有分区?它与暂停的分区有关吗?有没有人在重新平衡暂停的分区时遇到过同样的行为?

标签: apache-kafka

解决方案


推荐阅读