繁体   English   中英

如何从 Java 代码中获取 Kafka Topic 的复制因子

[英]How to get Replication Factor of Kafka Topic from Java code

我有一些主题名称,我应该从我的 Java 应用程序中获取有关它的复制因子的信息。 我试图用 zookeeper 库做到这一点:

ZooKeeper zooKeeper = new ZooKeeper("localhost:22181", 10000, null);
String s = new String(zooKeeper.getData("/brokers/topics/" + KafkaTopicConfig.TOPIC_NAME, false, null));

但它现在有关于复制因子的信息,只有关于当前副本数的信息。 我试图用 kafka-client api 做到这一点:

TopicDescription topicDescriptionKafkaFuture = describeTopicsResult.values().get(KafkaTopicConfig.TOPIC_NAME).get();

但是也没有关于主题复制因子的信息。 有没有办法从 Java 代码中获取这些信息?

对的,这是可能的。 所有的 shell 脚本都只是 Java(或 Scala)代码!

kafka-topics --describe --topic的源代码中,它查看partitions(0).replicas

从 describeTopics 开始,通过 TopicDescription,您最终会得到一个包含副本信息的 TopicPartitionInfo 列表。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM