【问题标题】:How to programmatically get Kafka Cluster and Broker information in Java?如何以编程方式在 Java 中获取 Kafka 集群和代理信息?
【发布时间】:2020-05-14 18:55:27
【问题描述】:

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

在每个worker中,我在设置consumer配置的时候设置集群地址

props.put(onsumerConfig.BOOTSTRAP_SERVERS_CONFIG, myServerAddress);

但是,这不会告诉我目前哪些经纪人是活跃的。

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

【问题讨论】:

    标签: java spring-boot apache-kafka spring-kafka


    【解决方案1】:

    您可以使用describeCluster() of AdminClient 检索集群中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());
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-29
      • 2011-09-11
      • 2021-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-25
      • 1970-01-01
      相关资源
      最近更新 更多