Я новичок в кафке.Есть ли какой-либо API для отображения результатов, такой же, как у файла kafka-consumer-groups.sh/bat.
kafka-consumer-groups.sh/bat
kafka-consumer-groups --bootstrap-server localhost:9091 --list
Спасибо за помощь.Ниже приведен код для получения значений списка потребителей
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); }
Лучше всего было бы использовать класс KafkaAdminClient (если вы используете версию 0.11 или новее (см. https://cwiki.apache.org/confluence/display/KAFKA/KIP-117%3A+Add+a+public+AdminClient+API+for+Kafka+admin+operations)
KafkaAdminClient
ConsumerGroupCommand, добавлено к KafkaAdminClient - AK 2.0release: https://cwiki.apache.org/confluence/display/KAFKA/KIP-222+-+Add+Consumer+Group+operations+to+Admin+API
ConsumerGroupCommand
Для более старых версий, как указано @cricket_007, вы можете заглянуть в скрипт, чтобы увидеть, какой класс он на самом деле использует, и вы можете встроить этот класс в свой собственный код для вызова.это напрямую.