环境 节点版本:10.15.3 Kafka节点版本:5.0.0 Kafka版本(单节点):2.3.0 经纪人数:1 主题的分区数:1
我的应用程序包含微服务,每个微服务可以运行1-3个实例(每个消息只能接收一个)。 因此,如果我了解kafka使用者组的正确用法,则在启动每个ms时,它将使用ms名称的groupId(每个ms唯一)创建一个使用者组(在kafka-node js中为新的ConsumerGroup),每个主题都添加1分区,而我认为只有一个使用者将使用该分区中的消息,如果该使用者离开该组,则其他一些使用者将开始从该分区中使用。
有时会创建消费者组并添加主题,但是当我从kafka docker运行命令时,我看到没有消费者被分配给分区的命令,我找不到原因。
命令:kafka-consumer-groups.sh --describe --group ums --bootstrap-server localhost:9092
有效回复:
主题分区电流偏移量日志记录结束偏移量滞后消费者ID主机客户端ID
resConfig_update 0 0 0 0 ums-consumer-1575794029875-4f78bb47-84f9-4d75-bede-3b838802723f /172.16.103.20 ums-consumer-1575794029875
reseller_delete 0 0 0 0 ums-consumer-1575794029875-4f78bb47-84f9-4d75-bede-3b838802723f /172.16.103.20 ums-consumer-1575794029875
reseller_create 0 0 0 0 ums-consumer-1575794029875-4f78bb47-84f9-4d75-bede-3b838802723f /172.16.103.20 ums-consumer-1575794029875
有时候我会得到这个:
主题分区电流偏移量日志记录结束偏移量滞后消费者ID主机客户端ID-
resConfig_update 0 0 0 0---
reseller_delete 0 0 0 0---
reseller_create 0 0 0 0---
我从消费者那里消费了SyncGroupRequest来调试问题,我可以看到消费者没有分配给他的分区。 这是ConsumerGroup的创建:
let options = {
id: `ums-consumer-${Date.now()}`,
clientId: `ums-consumer-${Date.now()}`,
kafkaHost: host,
groupId: 'ums',
protocol: ['roundrobin'],
idleConnection: 60000,
fromOffset: 'earliest'
};
let ConsumerGroup = kafka.ConsumerGroup;
let consumer = new ConsumerGroup(options,
['reseller_create','reseller_delete', 'resConfig_update']);
我看到了一个有关类似问题的帖子,但是它没有用: https://github.com/SOHU-Co/kafka-node/issues/339