zookeeper遞迴輸出所有節點
阿新 • • 發佈:2019-02-02
在zk根目錄下有a,zookeeper兩個節點,在a下有孩子a1.
[zk: s201:2181(CONNECTED) 9] ls /
[a, zookeeper]
[zk: s201:2181(CONNECTED) 10] ls /a
[a1]
遞迴程式碼如下:
@Test public void TestZKAll() throws Exception { ls("/"); } /** * 列出指定path下所有孩子 */ public void ls(String path) throws Exception { System.out.println(path); ZooKeeper zk = new ZooKeeper("192.168.xxx.xxx:2181",5000,null); List<String> list = zk.getChildren(path,null); //判斷是否有子節點 if(list.isEmpty() || list == null){ return; } for(String s : list){ //判斷是否為根目錄 if(path.equals("/")){ ls(path + s); }else { ls(path +"/" + s); } } }
輸出結果:
/a
/a/a1
/zookeeper
/zookeeper/quota
Process finished with exit code 0