卡夫卡消费者名单

Tav*_*avo 43 apache-kafka kafka-consumer-api

我需要找到一种方法来向卡夫卡询问一系列主题.我知道我可以使用目录中kafka-topics.sh包含的脚本来做到这一点bin\.有了这个列表,我需要每个主题的所有消费者.我找不到该目录中的脚本,也没有在kafka-consumer-api库中找到允许我这样做的类.

这背后的原因是我需要弄清楚主题偏移量与消费者偏移量之间的差异.

有没有办法实现这个目标?或者我是否需要在每个消费者中实现此功能?

Bas*_*Roy 76

使用kafka-consumer-groups.sh

例如

bin/kafka-consumer-groups.sh  --list --bootstrap-server localhost:9092

bin/kafka-consumer-groups.sh --describe --group mygroup --bootstrap-server localhost:9092
Run Code Online (Sandbox Code Playgroud)

  • bin/kafka-consumer-groups.sh --list --zookeeper localhost:2181注意:这只会显示有关使用ZooKeeper的消费者的信息(不是那些使用Java消费者API的消费者).bin/kafka-consumer-groups.sh --list --bootstrap-server localhost:9092注意:这仅显示有关使用Java使用者API的消费者的信息(基于非ZooKeeper的使用者). (12认同)
  • 我们应该使用--zookeeper not --bootstrap-server (7认同)
  • 使用者组列表命令列出群集中的所有使用者组,但是有没有办法显示特定主题的使用者组? (3认同)

jum*_*key 15

我没有看到这里提到它,但这是我经常使用的命令,它可以帮助我鸟瞰所有组、主题、分区、偏移、滞后、消费者等

kafka-consumer-groups.bat --bootstrap-server localhost:9092 --describe --all-groups
Run Code Online (Sandbox Code Playgroud)

示例如下所示:

GROUP TOPIC PARTITION  CURRENT-OFFSET  LOG-END-OFFSET  LAG CONSUMER-ID HOST CLIENT-ID
Group Topic 2          7               7               0   <SOME-ID>   XXXX <SOME-ID>
:
:
Run Code Online (Sandbox Code Playgroud)

重要的列是LAG,对于一个健康的平台,理想情况下它应该始终如此0(或者接近 0 或一个较低的数字以实现高吞吐量)。所以一定要监控!!!;-)。

PS:可以在这里
找到一篇关于如何监控延迟的有趣文章。


jac*_*hik 13

您可以将此用于0.9.0.0.版本卡夫卡

./kafka-consumer-groups.sh --list --zookeeper hostname:potnumber
Run Code Online (Sandbox Code Playgroud)

查看您创建的组.这将显示所有使用者组名称.

 ./kafka-consumer-groups.sh --describe --zookeeper hostname:potnumber  --describe  --group consumer_group_name
Run Code Online (Sandbox Code Playgroud)

查看详细信息

GROUP, TOPIC, PARTITION, CURRENT OFFSET, LOG END OFFSET, LAG, OWNER
Run Code Online (Sandbox Code Playgroud)


ego*_*or7 11

每个主题的所有消费者

(替换--zookeeper--bootstrap-server得到存储在由新卡夫卡的客户群)

获取每个主题的所有消费者作为一个表topictabconsumer

for t in `kafka-consumer-groups.sh --zookeeper <HOST>:2181 --list 2>/dev/null`; do
    echo $t | xargs -I {} sh -c "kafka-consumer-groups.sh --zookeeper <HOST>:2181 --describe --group {} 2>/dev/null | grep ^{} | awk '{print \$2\"\t\"\$1}' "
done > topic-consumer.txt
Run Code Online (Sandbox Code Playgroud)

使这对独一无二:

cat topic-consumer.txt | sort -u > topic-consumer-u.txt
Run Code Online (Sandbox Code Playgroud)

得到想要的:

less topic-consumer-u.txt | grep -i <TOPIC>
Run Code Online (Sandbox Code Playgroud)

  • 我认为这是最接近所问问题的解决方案。这应该是公认的答案。有时您不了解消费者群体,这就是您需要这个的原因。该解决方案唯一需要注意的是,它不会过滤掉没有活跃消费者的消费者组中的主题。谢谢 ! (2认同)

ynu*_*nux 6

我意识到这个问题现在已经有将近4年的历史了。从那以后,卡夫卡发生了许多变化。上面已经提到了这一点,但仅以小字体显示,因此我为迟到这个问题的用户写了这篇文章。

  1. 默认情况下,偏移量现在存储在Kafka主题中(不再存储在Zookeeper中),请参阅存储在Zookeeper或Kafka中的偏移量?
  2. 有一个kafka-consumer-groups实用程序,它返回所有信息,包括使用者的主题和分区的偏移量,甚至是滞后时间(注:当您询问主题的偏移量时,我假设您的意思是主题的分区)。在我的Kafka 2.0测试群集中:
kafka-consumer-groups --bootstrap-server kafka:9092 --describe
    --group console-consumer-69763 Consumer group 'console-consumer-69763' has no active members.

TOPIC           PARTITION  CURRENT-OFFSET  LOG-END-OFFSET  LAG             CONSUMER-ID     HOST            CLIENT-ID
pytest          0          5               6               1               -               -               -
``


Run Code Online (Sandbox Code Playgroud)