Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从Java代码中获取Kafka主题的复制因子_Java_Apache Kafka - Fatal编程技术网

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

如何从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)); 但它现在有关于复制因子的信息,只有

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

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”感到困惑,认为它是副本的当前计数,而不是复制因子。副本列表的大小受复制因子的上限限制