当人们试图描述一个kafka-consumer-group时,“消费者组没有活动成员”消息的含义是什么?
感谢深入的解释。
答案 0 :(得分:2)
Managing Consumer Groups是,members
命令将仅显示在组中处于活动状态的使用者
> bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --describe --group my-group --members
-members:此选项提供使用者组中所有活动成员的列表
什么是消费者?
Consumer是一个线程,它订阅一个或多个主题并处理记录流
什么是消费者组?
Kafka使用使用者组的概念来允许一组流程来划分使用和处理记录的工作。这些进程可以在同一台计算机上运行,也可以分布在许多计算机上,以提供可伸缩性和容错性以进行处理。共享相同group.id的所有使用者实例将属于同一使用者组。
消费群组没有活跃成员
如果特定组的使用者线程正在主动轮询来自kafka主题的数据,则认为该数据处于活动状态。如果没有任何使用者线程处于活动状态,则该组没有活动的使用者
答案 1 :(得分:0)
有时消费者组可能会起作用,但在描述消费者组时,您可能“没有活跃成员”。原因可以在这里找到: https://issues.apache.org/jira/browse/STORM-3067
答案 2 :(得分:0)
我发现的一种解决方法是,如果您能以某种方式让您的消费者应用保持运行(使用 say while(true) ro 之类的东西),它就可以工作。
while (true) {
ConsumerRecords<String, String> records = consumer.poll(
Duration.ofMillis(500)
);
for (ConsumerRecord<String, String> record : records) {
logger.info("Key : " + record.key() + " value : " + record.value());
logger.info(
"Partition : " + record.partition() + " offset : " + record.offset()
);
logger.info("Topic : " + record.topic());
}
// break;
}
然后如果我在终端中运行命令: ./bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --describe --group my_first_con_1
我明白这个 o/p :
组主题分区当前偏移日志结束偏移滞后消费者ID主机客户端ID my_first_con_1 my-first-topic 0 9 9 0 消费者-my_first_con_1-1-4dbc5583-e560-4234-81a7-9bd9c9803374 /192.168.1.5 消费者-my_first_con_1-1 my_first_con_1 my-first-topic 1 6 6 0 消费者-my_first_con_1-1-4dbc5583-e560-4234-81a7-9bd9c9803374 /192.168.1.5 消费者-my_first_con_1-1 my_first_con_1 my-first-topic 2 15 15 0 consumer-my_first_con_1-1-4dbc5583-e560-4234-81a7-9bd9c9803374 /192.168.1.5 consumer-my_first_con_1-1