Как проверить количество и IP-адреса серверов kafka, работающих в кластере, через клиент kafka?

У меня есть требование, при котором мы должны проверять работоспособность системы через одну точку отдыха. Идея состоит в том, чтобы получить число узлов kafka и их IP-адресов в кластере, активно работающих через клиент kafka. Предоставляет ли kafka какой-либо API в клиенте для получения этой информации?

1 ответ

Да, сведения обо всех узлах Kafka в кластере можно легко получить с помощью describeCluster() метод AdminClient.

Например:

Properties adminProps = new Properties();
adminProps.load(new FileInputStream("admin.properties"));
AdminClient adminClient = KafkaAdminClient.create(adminProps);

DescribeClusterResult describeClusterResult = adminClient.describeCluster();
List<Node> nodes = new ArrayList<>(describeClusterResult.nodes().get());
for (Node node : nodes) {
    System.out.println("Node id=" + node.id() + " host=" + node.host() + " port=" + node.port());
}
Другие вопросы по тегам