psa*_*san 2 java apache-kafka apache-zookeeper
@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;
}
Run Code Online (Sandbox Code Playgroud)
我是apache kafka的新手.现在有一天试图用zookeeper了解卡夫卡.我想获取与zookeeper相关的主题.所以我正在尝试跟踪事情
:)首先我做了一个zookeeper客户端,如下所示:
ZkClient(ZookeeperProps.zookeeperURL, ZookeeperProps.connectionTimeoutMs, ZookeeperProps.sessionTimeoutMs, ZKStringSerializer$.MODULE$);
Seq<String> topics = ZkUtils.getAllTopics(zkClient);
Run Code Online (Sandbox Code Playgroud)
但是在使用Java代码执行时主题是空白的.我没有得到这里的问题.我的Zookeeper道具如下:String zkConnect ="127.0.0.1:2181"; 动物园管理员跑得很好.
请帮帮我们
这很简单.(我的例子是用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);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我有三个主题的结果:test,test2和test 3
test
test2
test3
Run Code Online (Sandbox Code Playgroud)
下面的图片是我为自己的博客发布的内容.当您了解Kafka使用的ZooKeeper树的结构时,它会很有帮助.(这里看起来很小.请在新标签页中打开图片并放大.)
