我使用kafka 0.10 kafkaConsumer API在消费者订阅下获取消费者和主题集。
现在我可以通过topiclist方法成功获取主题和partitionIds。
要获取消费者群组数据,我在KafkaConsumer下找不到方法,但我可以通过" zookeeper.getChildren(ZkUtils.ConsumersPath(),false)从zookeeper获取群组列表;"
我的问题是如何获得小组和主题的关系。 我知道一个组可以订阅一个或多个主题,但我不知道如何通过KafkaConsumer API或zookeeper获取数据。
我曾尝试过kafkaConsumer.subscription()但返回是一个空列表。
答案 0 :(得分:2)
KafkaConsumer
中没有API来获取消费者群组信息。 KafkaConsumer
旨在使用来自主题的消息并成为消费者组的一部分。但没有别的。
在命令行上,您可以使用bin/kafka-consumer-groups.sh
获取使用者组信息。在内部,它利用kafka.admin.ConsumerGroupCommand
- 您可以尝试将其集成到Java代码中。
您还可以更深入地使用一个杠杆并使用非公共API(只需查看kafka.admin.ConsumerGroupCommand
的代码即可查看其内部工作原理 - 但是,如果您想要升级,这当然是脆弱的以后,非公共API可以针对较新版本的课程进行更改。