<!--zkclient依賴--> <dependency> <groupId>com.101tec</groupId> <artifactId>zkclient</artifactId> <version>0.2</version> </dependency>
public static void main(String[] args) throws InterruptedException { /** * 建立連接 */ ZkClient zkClient = new ZkClient("192.168.70.130:2181"); //設置超時時間 //ZkClient zkClient = new ZkClient("127.0.0.1:2181", 5000); System.out.println("ZooKeeper session established==="); /** * 節點的監控 */ zkClient.subscribeChildChanges("/lg-zkClient/lg-c6", new IZkChildListener() { public void handleChildChange(String parentPath, List<String> currentChilds) throws Exception { System.out.println(parentPath + " 's child changed, currentChilds:" + currentChilds); } }); /** * 創建節點 */ //createParents的值是設置爲true,遞歸創建子節點 createPersistent 持久節點 zkClient.createPersistent("/lg-zkClient/lg-c1",true); //持久順序節點 //zkClient.createPersistentSequential("/lg-zkClient/lg-c1",true); System.out.println("success create znode."); /** * 刪除節點 */ String path = "/lg-zkClient/lg-c1"; zkClient.deleteRecursive(path); System.out.println("success delete znode."); /** * 創建子節點 */ zkClient.createPersistent("/lg-zkClient/lg-c2",true); System.out.println("success create znode."); //判斷節點是否存在 boolean exists = zkClient.exists("/lg-zkClient/lg-c2"); if(!exists){ //創建臨時節點 zkClient.createEphemeral("/lg-zkClient/lg-c2","6666"); //創建臨時順序節點 //zkClient.createEphemeralSequential("/lg-zkClient/lg-c2","6666"); } /** * 節點內容變化監控 */ zkClient.subscribeDataChanges("/lg-zkClient/lg-c6", new IZkDataListener() { public void handleDataChange(String path, Object data) throws Exception { System.out.println(path+"該節點數據被修改,修改後爲:"+ data); } public void handleDataDeleted(String s) throws Exception { System.out.println(s+"該節點數據被刪除"); } }); /** * 獲取節點數據 */ Object o = zkClient.readData("/lg-zkClient/lg-c2"); System.out.println(o); /** * 修改節點數據 */ zkClient.writeData("/lg-zkClient/lg-c2","BBBBBBB"); Thread.sleep(1000); /** * 刪除節點數據 */ zkClient.delete("/lg-zkClient/lg-c2"); Thread.sleep(1000); }