如何在Java中从kafka服务器获取主题列表
2022-09-02 00:25:52
我正在使用版本,并且非常新。kafka 0.8
我想知道中创建的主题列表及其元数据。是否有任何 API 可用于找出这一点?kafka server
基本上,我需要编写一个Java使用者,它应该自动发现中的任何主题。有API可以获取,但这需要主题名称作为输入参数。我需要服务器中存在的所有主题的信息。kafka server
TopicMetadata
我正在使用版本,并且非常新。kafka 0.8
我想知道中创建的主题列表及其元数据。是否有任何 API 可用于找出这一点?kafka server
基本上,我需要编写一个Java使用者,它应该自动发现中的任何主题。有API可以获取,但这需要主题名称作为输入参数。我需要服务器中存在的所有主题的信息。kafka server
TopicMetadata
与卡夫卡 0.9.0
您可以使用提供的使用者方法列出服务器中的主题 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();
consumer.close();
我认为这是最好的方法:
ZkClient zkClient = new ZkClient("zkHost:zkPort");
List<String> topics = JavaConversions.asJavaList(ZkUtils.getAllTopics(zkClient));