2016-12-26 1 views
2

Я работаю над проблемой, которая требует от меня получить список всех тем Kafka, присутствующих в кластере, а также получить их соответствующий номер раздела. Я знаю, что это можно сделать с помощью команды kafka-topics.sh, которая реализует TopicCommand.scala, но мне нужно реализовать эту логику в Java. Я работаю с Kafka 0.10.0 и ищу API, который может помочь мне сделать то же самое. Любая помощь будет оценена!Как получить список всех тем Kafka в кластере вместе с номером раздела с помощью JAVA

ответ

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 тоже!

+1

примеры не имеют отношения к версии 0.10.0. Поскольку метаданные тем сохраняются и управляются по выделенной теме в Kafka, в отличие от 0.8, где они использовали zookeeper для задания. , но способ, который вы предложили, является самым простым способом, тем не менее! вы заработали очко !!! –

 Смежные вопросы

  • Нет связанных вопросов^_^