我正在使用KAFKAJS与Kafka消费者一起工作。我需要知道分配给特定消费者的所有分区。
例如,假设Topic 1有5个分区。并且有2个具有相同clientId的消费者。一个同学有3个课题,另一个有2个课题。我希望每个消费者都知道分配的分区。
我们可以使用consumer. descripbegroup来查询消费者组的状态。https://kafka.js.org/docs/consuming a-name-describe-group-a-describe-group
memberAssignment字段描述了分配给每个成员的主题分区,但它是一个Buffer,所以您需要使用AssignerProtocol.MemberAssignment.decode:
https://github.com/tulios/kafkajs/blob/master/index.js就是
我们还可以监听GROUP_JOIN事件。它已经包含了成员赋值,所以您不需要实际描述group:
https://kafka.js.org/docs/instrumentation-events消费者