如何使用 Java API 列出 Kafka 集群中所有可用的代理?

How to list all available brokers in Kafka cluster using Java API?

标题如是说。

有没有办法(使用 Kafka Java API)获取集群中可用的 Kafka 代理的数量?

我知道使用 Kafka 服务器附带的命令行实用程序可以做到这一点;但我还没有找到关于如何使用 Java API.

的任何信息

您可以从 kafkaAdminClient.describeCluster

获取代理和集群信息

Get information about the nodes in the cluster, using the default options. This is a convenience method for #describeCluster(DescribeClusterOptions) with default options. See the overload for more details.

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 methods in Node class 获取更多信息