我是kafka的新手。是否有任何API列出与kafka-consumer-groups.sh/bat
文件相同的结果。
kafka-consumer-groups --bootstrap-server localhost:9091 --list
答案 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;
}