消费者组没有活跃的成员-Kafka

时间:2019-11-26 17:48:09

标签: apache-kafka

当人们试图描述一个kafka-consumer-group时,“消费者组没有活动成员”消息的含义是什么?

感谢深入的解释。

3 个答案:

答案 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