Как вывести список всех доступных брокеров в кластере Kafka с помощью Java API? - PullRequest
3 голосов
/ 04 мая 2020

О чем говорится в заголовке.

Есть ли способ (с использованием Kafka Java API) получить количество ДОСТУПНЫХ брокеров Kafka в кластере?

Я знаю это с помощью командной строки утилита, поставляемая с сервером Kafka, это можно сделать; но я не нашел ничего, как это сделать с помощью Java API.

1 Ответ

2 голосов
/ 04 мая 2020

Вы можете получить информацию о брокере и кластере из kafkaAdminClient.describeCluster

Получите информацию об узлах в кластере, используя параметры по умолчанию. Это удобный метод для #describeCluster (DescribeClusterOptions) с параметрами по умолчанию. Для получения дополнительных сведений см. Перегрузку.

Properties properties = new Properties();
properties.setProperty("bootstrap.servers", "localhost:9092");
properties.setProperty("client.id", "producerAdmin");
properties.setProperty("metadata.max.age.ms", "3000");
kafkaAdminClient = AdminClient.create(properties);

DescribeClusterResult result = kafkaAdminClient.describeCluster()
KafkaFuture<Collection<Node>> nodes = result.nodes();

И вы можете использовать методы host , port в классе Node , чтобы получить дополнительная информация

...