我正在解决一个问题,该问题需要我获取集群中存在的所有 Kafka 主题的列表,并获取它们相应的分区号。
我知道这可以通过kafka-topics.sh
来完成实现 TopicCommand.scala
的命令,但我需要用Java实现这个逻辑。
我正在使用 Kafka 0.10.0 并寻找一个可以帮助我做同样事情的 API。任何帮助将不胜感激!
最佳答案
您可以使用提供的消费者方法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也是!
关于java - 如何使用 JAVA 获取集群中所有 Kafka 主题的列表以及分区号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41327081/