如何使用python列出卡夫卡消费者群

时间:2018-08-29 14:52:35

标签: python apache-kafka kafka-consumer-api

我想使用python获取Kafka消费者组列表,但我不能。

我使用过Zookeeper的python客户端(kazoo),但是消费者组列表为空,因为这种方法适用于旧消费者,而我们没有使用旧消费者。

如何获取带有python代码的使用者组列表?

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

3 个答案:

答案 0 :(得分:3)

您可以使用kafka-python轻松列出消费者组。

只需将ListGroupsRequest发送到集群中的任何代理。

例如:

from kafka import BrokerConnection
from kafka.protocol.admin import *
import socket

bc = BrokerConnection('localhost', 9092, socket.AF_INET)
bc.connect_blocking()

list_groups_request = ListGroupsRequest_v1()

future = bc.send(list_groups_request)
while not future.is_done:
    for resp, f in bc.recv():
        f.success(resp)

for group in future.value.groups:
    print(group)

答案 1 :(得分:0)

最近引入了

KIP-222,以使Java客户端能够检索所有使用者组。可能需要更多时间让librdkafka或python客户端支持此功能。查看this issue中的详细信息。

答案 2 :(得分:0)

您只需使用 kafka-python 模块即可做到这一点。

from kafka import KafkaAdminClient
client = KafkaAdminClient(bootstrap_servers="localhost:9092")
for group in client.list_consumer_groups():
    print(group[0])