2
我正在处理一个问题,该问题需要我获取群集中存在的所有Kafka主题的列表,并获取其相应的分区号。 我知道这可以通过执行TopicCommand.scala
的kafka-topics.sh
命令来完成,但我需要在Java中实现此逻辑。 我正在使用Kafka 0.10.0并寻找一个可以帮助我做同样的API。任何帮助,将不胜感激!如何获得群集中的所有Kafka主题的列表以及使用JAVA的分区号
我正在处理一个问题,该问题需要我获取群集中存在的所有Kafka主题的列表,并获取其相应的分区号。 我知道这可以通过执行TopicCommand.scala
的kafka-topics.sh
命令来完成,但我需要在Java中实现此逻辑。 我正在使用Kafka 0.10.0并寻找一个可以帮助我做同样的API。任何帮助,将不胜感激!如何获得群集中的所有Kafka主题的列表以及使用JAVA的分区号
您可以使用提供的消费者方法listTopics()在服务器中列出主题。像这样:
Map<String, List<PartitionInfo> > topics;
Properties props = new Properties();
props.put("bootstrap.servers", "1.2.3.4:9092");
props.put("group.id", "test-consumer-group");
props.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
props.put("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
KafkaConsumer<String, String> consumer = new KafkaConsumer<String, String>(props);
topics = consumer.listTopics();
结帐这些examples呢!
这些示例与版本0.10.0无关。因为主题元数据在Kafka的专用主题中存储和管理,与他们使用zookeeper进行作业的0.8不同。 但是您建议的方式是最简单的方法!你已经赢得了一个点! –