Kafka如何在一个群体中唯一地识别消费者

ux6nzvsh  于 2021-06-07  发布在  Kafka
关注(0)|答案(1)|浏览(377)

我在一个群体中有多个消费者。Kafka如何确定每个消费者是不同的,并将其Map到分区。
或者-用于标识组中消费者的唯一键是什么

ltskdhd1

ltskdhd11#

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

相关问题