apache-kafka 消费者组没有活动成员-Kafka

eoigrqb6  于 2022-11-01  发布在  Apache
关注(0)|答案(4)|浏览(404)

当人们试图描述一个Kafka式的消费者群体时,“消费者群体没有活跃的成员”这一信息的含义是什么?
非常感谢您的深入解释。

ntjbwcob

ntjbwcob1#

管理用户群组是,members指令只会显示群组中作用中的用户

> bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --describe --group my-group --members

--members:此选项提供使用者群组中所有作用中成员的清单

什么是消费者?

消费者是订阅一个或多个主题并处理记录流的线程

什么是消费者组?

Kafka使用使用者群组的概念,让行程作业集区可以分割使用和行程记录的工作。这些行程作业可以在相同的机器上执行,也可以分散在许多机器上,以提供行程的延展性和容错能力。共用相同www.example.com的所有使用者执行行程group.id将是相同使用者群组的一部分。

使用者组没有活动成员

如果特定组的消费者线程正在主动轮询Kafka主题的数据,则称之为活动。如果没有消费者线程处于活动状态,则该组没有活动消费者

d5vmydt9

d5vmydt92#

有时候,消费者群体可能有效,但在描述消费者群体时,你可能会发现“没有活跃成员”。原因如下:https://issues.apache.org/jira/browse/STORM-3067

xdnvmnnf

xdnvmnnf3#

我发现的一个变通办法是,如果你能以某种方式让你的消费者应用程序保持运行(使用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--引导服务器本地主机:9092 --描述--组my_first_con_1
我得到这个o/p:
组主题分区当前偏移日志结束偏移滞后客户端ID主机客户端ID我的第一个主题0 9 9 0客户端我的第一个主题1-1- 4dbc 5583-e560-4234- 81 a7 - 9 bd 9 c9803374/192.168.1.5客户端我的第一个主题1-1我的第一个主题1 6 6 0客户端我的第一个主题1-1- 4dbc 5583我的第一个连接1 - 1我的第一个连接1我的第一个主题2 15 15 0我的第一个连接1 - 1我的第一个连接1-1

41zrol4v

41zrol4v4#

在以下情况下,可能不存在消费者详细信息
a.消费者从来没有生活过
B.__consumer_offset的TTL小于使用者组的最后活动时间。
c.__consumer_offset的复制因子为1,并且特定分区存在数据丢失。

相关问题