gpt4 book ai didi

java - 如何获取 apache kafka 中的所有主题?

转载 作者:行者123 更新时间:2023-12-02 17:34:56 25 4
gpt4 key购买 nike

    @RequestMapping(value = "/getTopics",method = RequestMethod.GET)
@ResponseBody
public Response getAllTopics() {
ZkClient zkClient = new ZkClient(ZookeeperProps.zookeeperURL, ZookeeperProps.connectionTimeoutMs,
ZookeeperProps.sessionTimeoutMs, ZKStringSerializer$.MODULE$);
Seq<String> topics = ZkUtils.getAllTopics(zkClient);
scala.collection.Iterator<String> topicIterator = topics.iterator();
String allTopics = "";
while(topicIterator.hasNext()) {
allTopics+=topicIterator.next();
allTopics+="\n";
}

Response response = new Response();
response.setResponseMessage(allTopics);
return response;

}

我是apache kafka的新手。现在,我试图用动物园管理员来理解卡夫卡。我想获取与 Zookeeper 相关的主题。所以我正在尝试以下事情
a:) 首先我制作了 Zookeeper 客户端,如下所示:

ZkClient(ZookeeperProps.zookeeperURL, ZookeeperProps.connectionTimeoutMs, ZookeeperProps.sessionTimeoutMs, ZKStringSerializer$.MODULE$);
Seq<String> topics = ZkUtils.getAllTopics(zkClient);

但是在使用 Java 代码执行时主题是空白集。我不明白这里有什么问题。我的 Zookeeper Props 如下: String zkConnect = "127.0.0.1:2181";并且 Zookeeper 运行得非常好。
请大家帮忙。

最佳答案

这非常简单。 (我的示例是用 Java 编写的,但在 Scala 中几乎是一样的。)

import java.util.List;

import org.apache.zookeeper.ZooKeeper;

public class KafkaTopicListFetcher {

public static void main(String[] args) throws Exception {
ZooKeeper zk = new ZooKeeper("localhost:2181", 10000, null);
List<String> topics = zk.getChildren("/brokers/topics", false);
for (String topic : topics) {
System.out.println(topic);
}
}
}

当我有三个主题时的结果:test、test2 和 test 3

test
test2
test3

下图是我为自己的博客帖子绘制的。了解 Kafka 使用的 ZooKeeper 树的结构将会很有帮助。 (这里看起来很小。请在新选项卡中打开图像并放大。)

ZooKeeper tree

关于java - 如何获取 apache kafka 中的所有主题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29847840/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com