我正在研究一个问题,该问题要求我获取群集中存在的所有Kafka主题的列表,并获取相应的分区号。
我知道这可以通过实现kafka-topics.sh
的{{1}}命令来完成,但我需要在Java中实现这个逻辑。
我正在使用Kafka 0.10.0并寻找可以帮助我做同样的API。任何帮助将不胜感激!
答案 0 :(得分:2)
您可以使用提供的使用者方法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!