我在一个群组中有多个消费者。 kafka如何识别每个消费者的不同并将其映射到分区。
或 - 用于识别组中消费者的唯一密钥
答案 0 :(得分:2)
Kafka使用类似
的格式生成随机消费者ID<client.id>-<uuid>
您可以在组中看到此操作新的控制台使用者。
$ ./bin/kafka-console-consumer.sh --new-consumer --bootstrap-server kafka-1:9092 --consumer-property group.id=group1 -consumer-property client.id=myClient --topic topic1
并且,当消费者正在运行时,执行命令行kafka-consumer-groups.sh来描述该组。看一下CONSUMER-ID专栏。
$ ./bin/kafka-consumer-groups.sh --new-consumer --bootstrap-server kafka-1:9092 --describe --group group1
Note: This will only show information about consumers that use the Java consumer API (non-ZooKeeper-based consumers).
TOPIC PARTITION CURRENT-OFFSET LOG-END-OFFSET LAG CONSUMER-ID HOST CLIENT-ID
topic1 0 0 0 0 myClient-e137f762-e550-4c8e-96d9-8f7f725e2c6d /127.0.0.1 myClient
从0.10.2.1开始的相关Kafka代码如下所示:
val memberId = clientId + "-" + group.generateMemberIdSuffix
,其中
def generateMemberIdSuffix = UUID.randomUUID().toString