kafka消费者列表API

时间:2018-05-25 10:39:18

标签: apache-kafka apache-kafka-streams

我是kafka的新手。是否有任何API列出与kafka-consumer-groups.sh/bat文件相同的结果。

kafka-consumer-groups --bootstrap-server localhost:9091 --list

3 个答案:

答案 0 :(得分:0)

最好的选择是使用KafkaAdminClient类(如果您使用的是0.11或更新版本(参见https://cwiki.apache.org/confluence/display/KAFKA/KIP-117%3A+Add+a+public+AdminClient+API+for+Kafka+admin+operations

  

ConsumerGroupCommand已添加到KafkaAdminClient是AK 2.0版本:https://cwiki.apache.org/confluence/display/KAFKA/KIP-222+-+Add+Consumer+Group+operations+to+Admin+API

对于旧版本,正如@ cricket_007所指出的那样,您可以查看脚本以查看它实际使用的类,并且您可以在自己的代码中嵌入此类以直接调用它。

答案 1 :(得分:0)

感谢您的帮助。 这是获取消费者列表

值的下面代码
public static void main(String[] args) {
String[] arg = new String[3];
arg[0] = "--bootstrap-server";
arg[1] = " localhost:9092";
arg[2] = "--list";

String[] resultArray = new String[3];
ConsumerGroupCommand.ConsumerGroupCommandOptions checkArgs = new ConsumerGroupCommand.ConsumerGroupCommandOptions(
    arg);
checkArgs.checkArgs();
List<String> result = new ConsumerGroupCommand.KafkaConsumerGroupService(checkArgs).listGroups();
System.out.println(result);
result.copyToArray(resultArray);
java.util.List<String> names = java.util.Arrays.asList(resultArray);

System.out.println("result" + names);

//the below line will print the value in console 
ConsumerGroupCommand.main(arg);
 }

答案 2 :(得分:0)

public List<String> listConsumersGroups() throws ExecutionException, InterruptedException {
    AdminClient admin = AdminClient.create(config);
    ListConsumerGroupsResult result = admin.listConsumerGroups();
    Collection<ConsumerGroupListing> listings = result.valid().get();
    List<String> consumerGroups = new ArrayList<>(listings.size());
    listings.forEach(l->consumerGroups.add(l.groupId()));
    return consumerGroups; 
}