1

我正在使用 KAFKAJS 与 Kafka 消费者合作。我需要知道分配给特定消费者的所有分区。

例如,假设主题 1 有 5 个分区。并且有 2 个消费者具有相同的 clientId。因此,将为一个分配 3 个主题,另一个分配 2 个主题。我希望每个消费者都知道分配的分区。

4

1 回答 1

0

我们可以使用 consumer.describeGroup 来查询消费者组的状态。https://kafka.js.org/docs/sumption#a-name-describe-group-a-describe-group

memberAssignment 字段描述了分配给每个成员的主题分区,但它是一个缓冲区,因此您需要使用 AssignerProtocol.MemberAssignment.decode 对其进行解码:

https://github.com/tulios/kafkajs/blob/master/index.js#L18

我们也可以监听 GROUP_JOIN 事件。它已经包含成员分配,因此您不需要实际描述Group:

https://kafka.js.org/docs/instrumentation-events#consumer

于 2021-03-10T04:29:50.790 回答