如何使用JAVA获取群集中所有Kafka主题的列表以及分区号

时间:2016-12-26 06:08:49

标签: java api apache-kafka

我正在研究一个问题,该问题要求我获取群集中存在的所有Kafka主题的列表,并获取相应的分区号。 我知道这可以通过实现kafka-topics.sh的{​​{1}}命令来完成,但我需要在Java中实现这个逻辑。 我正在使用Kafka 0.10.0并寻找可以帮助我做同样的API。任何帮助将不胜感激!

1 个答案:

答案 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