首页 > 解决方案 > Python confluent_kafka - 列出当前正在收听主题的所有消费者

问题描述

如何获取正在使用 Confluent_Kafka 收听主题的 consumer.id?

我能够获得消费者群体和主题。但不是消费者姓名/ID。

标签: pythonapache-kafkakafka-consumer-apiconfluent-kafka-python

解决方案


如果您的消费者正在使用组功能,您可以使用 获取消费者组的列表,AdminClient然后找到属于该组的每个消费者。它已添加到此提交中。

示例片段

from confluent_kafka.admin import AdminClient
broker = '1.1.1.1:9092' # replace appropriately
a = AdminClient({'bootstrap.servers': broker})
groups = a.list_groups(timeout=10)
print(" {} consumer groups".format(len(groups)))
for g in groups:
    print(" \"{}\" with {} member(s), protocol: {}, protocol_type: {}".format(
        g, len(g.members), g.protocol, g.protocol_type))

    for m in g.members:
        print("id {} client_id: {} client_host: {}".format(m.id, m.client_id, m.client_host))

您可能对client_id区分组中消费者的领域感兴趣。

参考:https ://github.com/confluentinc/confluent-kafka-python/blob/master/examples/adminapi.py


推荐阅读