Ste*_*ler 4 java apache-kafka spring-boot spring-kafka
我希望以编程方式从工作人员本身获取我的 kafka 集群上的所有活动代理。这个想法是创建一个健康调度程序,它将检查并返回活动代理地址。
在每个worker中,我在设置consumer配置的时候设置了集群地址
props.put(onsumerConfig.BOOTSTRAP_SERVERS_CONFIG, myServerAddress);
Run Code Online (Sandbox Code Playgroud)
但是,这不会告诉我目前哪些经纪人是活跃的。
我进行了一些搜索,但找不到任何获取此信息的方法。是否可以?
您可以使用检索集群中的卡夫卡经纪人的所有细节describeCluster()中AdminClient:
获取有关集群中节点的信息。
参数: 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());
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
435 次 |
| 最近记录: |