如何使用Java编程程序获取Kafka群集和Broker信息?

4
我希望从工作程序中以编程方式获取我的kafka集群中所有活动代理。我的想法是创建一个健康调度程序,检查并返回活动代理的地址。
在每个工作程序中,我在设置消费者配置时设置集群地址。
props.put(onsumerConfig.BOOTSTRAP_SERVERS_CONFIG, myServerAddress);

然而,这并不能告诉我目前哪些经纪人是活跃的。

我进行了一些搜索,但我找不到获取这些信息的方法。这是可能的吗?

1个回答

5
您可以使用AdminClientdescribeCluster() 方法检索Kafka集群中所有经纪人的详细信息:

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

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

返回值: 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());
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接