如何从Java代码中获取Kafka主题的复制因子
我有一些主题名,我应该从我的Java应用程序中获取关于它的复制因子的信息。我试着用zookeeper库做到这一点:如何从Java代码中获取Kafka主题的复制因子,java,apache-kafka,Java,Apache Kafka,我有一些主题名,我应该从我的Java应用程序中获取关于它的复制因子的信息。我试着用zookeeper库做到这一点: ZooKeeper zooKeeper = new ZooKeeper("localhost:22181", 10000, null); String s = new String(zooKeeper.getData("/brokers/topics/" + KafkaTopicConfig.TOPIC_NAME, false, null)); 但它现在有关于复制因子的信息,只有
ZooKeeper zooKeeper = new ZooKeeper("localhost:22181", 10000, null);
String s = new String(zooKeeper.getData("/brokers/topics/" + KafkaTopicConfig.TOPIC_NAME, false, null));
但它现在有关于复制因子的信息,只有关于当前副本的信息才算。
我尝试用kafka客户端api实现这一点:
TopicDescription topicDescriptionKafkaFuture = describeTopicsResult.values().get(KafkaTopicConfig.TOPIC_NAME).get();
但也没有关于主题复制因子的信息。是否有任何方法可以从Java代码中获取这些信息?是的,这是可能的。所有的shell脚本都是Java(或Scala)代码
在
卡夫卡主题--descripe--topic
的源代码中,它从DescripteTopics开始查看,通过TopicDescription,您最终得到一个包含副本信息的TopicPartitionInfo列表。?是的,正如我前面提到的,a已经尝试过这个,但是没有关于topic的复制因子的信息(感谢您节省了我的时间和精力。:)这个解决方案对我来说听起来不错,也同样有效。是的,对我来说也不错。我对名称方法名称“replices.size”感到困惑,认为它是副本的当前计数,而不是复制因子。副本列表的大小受复制因子的上限限制