如何获得消费者群体和主题的关系

时间:2016-12-06 15:21:33

标签: apache-kafka kafka-consumer-api

我使用kafka 0.10 kafkaConsumer API在消费者订阅下获取消费者和主题集。

现在我可以通过topiclist方法成功获取主题和partitionIds。

要获取消费者群组数据,我在KafkaConsumer下找不到方法,但我可以通过" zookeeper.getChildren(ZkUtils.ConsumersPath(),false)从zookeeper获取群组列表;"

我的问题是如何获得小组和主题的关系。 我知道一个组可以订阅一个或多个主题,但我不知道如何通过KafkaConsumer API或zookeeper获取数据。

我曾尝试过kafkaConsumer.subscription()但返回是一个空列表。

我的参考: https://kafka.apache.org/0101/javadoc/index.html?org/apache/kafka/clients/consumer/KafkaConsumer.html

1 个答案:

答案 0 :(得分:2)

KafkaConsumer中没有API来获取消费者群组信息。 KafkaConsumer旨在使用来自主题的消息并成为消费者组的一部分。但没有别的。

在命令行上,您可以使用bin/kafka-consumer-groups.sh获取使用者组信息。在内部,它利用kafka.admin.ConsumerGroupCommand - 您可以尝试将其集成到Java代码中。

您还可以更深入地使用一个杠杆并使用非公共API(只需查看kafka.admin.ConsumerGroupCommand的代码即可查看其内部工作原理 - 但是,如果您想要升级,这当然是脆弱的以后,非公共API可以针对较新版本的课程进行更改。