API списка потребителей kafka - PullRequest
0 голосов
/ 25 мая 2018

Я новичок в кафке.Есть ли какой-либо API для отображения результатов, такой же, как у файла kafka-consumer-groups.sh/bat.

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

Ответы [ 2 ]

0 голосов
/ 28 мая 2018

Спасибо за помощь.Ниже приведен код для получения значений списка потребителей

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);
 }
0 голосов
/ 25 мая 2018

Лучше всего было бы использовать класс 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.0release: https://cwiki.apache.org/confluence/display/KAFKA/KIP-222+-+Add+Consumer+Group+operations+to+Admin+API

Для более старых версий, как указано @cricket_007, вы можете заглянуть в скрипт, чтобы увидеть, какой класс он на самом деле использует, и вы можете встроить этот класс в свой собственный код для вызова.это напрямую.

...