如何在 Java 中以编程方式获取 Kafka 集群和代理信息?



我希望以编程方式从worker本身获取kafka集群上的所有活动代理。 这个想法是创建一个健康调度程序,它将检查并返回活动的代理地址。

在每个辅助角色中,我在设置使用者配置时设置集群地址

props.put(onsumerConfig.BOOTSTRAP_SERVERS_CONFIG, myServerAddress);

但是,这不会告诉我目前哪些经纪人处于活跃状态。

我做了一些搜索,但我找不到任何获取此信息的方法。可能吗?

您可以使用AdminClientdescribeCluster()检索集群中 Kafka 代理的所有详细信息:

获取有关群集中节点的信息。

参数:选项 - 获取信息时使用的选项 关于集群。

返回:DescribeClusterResult.

// Create AdminClient
Properties props = new Properties();
props.load(new FileInputStream("ac.properties"));
AdminClient adminClient = KafkaAdminClient.create(props);
// Get brokers' details 
DescribeClusterResult describeClusterResult = adminClient.describeCluster();
List<Node> brokers = new ArrayList<>(describeClusterResult.nodes().get());
for (Node broker : brokers) {
System.out.println("Host=" + broker.host() + ", Port=" + broker.port());
}

最新更新