zookeeper zkClient api 使用
阿新 • • 發佈:2017-10-25
create jar 顯示 一個 out current inter public exceptio
操作步驟:
一、引入zkclient的jar包(maven方式)
<dependency>
<groupId>com.101tec</groupId>
<artifactId>zkclient</artifactId>
<version>0.10</version>
</dependency>
二、調用相關代碼
package com.zookeeper.api.zkClientApi; import java.util.List; import java.util.concurrent.TimeUnit; import org.I0Itec.zkclient.IZkDataListener; import org.I0Itec.zkclient.ZkClient; public class ZkClientApi { private final static String connectString = "192.168.194.128:2181,192.168.194.129:2181,192.168.194.130:2181"; public static void main(String[] args) throws InterruptedException { ZkClient zkClient = new ZkClient(connectString,4000); //zkClient一次創建多個節點 zkClient.createPersistent("/zkclient/zkclient1/zkclient1-1", true); System.out.println("創建多層節點成功"); List<String> list = zkClient.getChildren("/zkclient"); System.out.println("獲取zkclient節點下的子節點:"+list); //zkClient刪除一個節點,和原生api一樣,只能從最底層節點一個一個刪除 // zkClient.delete("/zkclient"); //zkClient遞歸刪除某個節點及其子節點 zkClient.deleteRecursive("/zkclient"); System.out.println("刪除zkclient及其下面的子節點成功\n"); //利用watch機制做訂閱,使用異步操作處理節點 zkClient.subscribeDataChanges("/node", new IZkDataListener(){ public void handleDataChange(String arg0, Object arg1) throws Exception { System.out.println("節點名稱:"+arg0+"-->修改後的值:"+arg1); } public void handleDataDeleted(String arg0) throws Exception { System.out.println("刪除節點"+arg0+"成功"); } }); zkClient.createPersistent("/node","node"); TimeUnit.SECONDS.sleep(2); zkClient.writeData("/node", "node1"); TimeUnit.SECONDS.sleep(2); zkClient.delete("/node"); TimeUnit.SECONDS.sleep(2); } }
三、顯示測試結果
創建多層節點成功 獲取zkclient節點下的子節點:[zkclient1] 刪除zkclient及其下面的子節點成功 節點名稱:/node-->修改後的值:node 節點名稱:/node-->修改後的值:node1 刪除節點/node成功
zookeeper zkClient api 使用