連接
CountDownLatch cdl = new CountDownLatch(1); 初始化線程爲1
countDownLatch 閉鎖(線程遞減鎖) countDown() await() 對線程進行計數,當計數歸0會放開阻塞重新計數
ZooKeeper zk = new ZooKeeper("IP:2181" ,會話超時時間(毫秒),new Watcher(){//監控者,監控連接狀態
public void process(WatchedEvent event){
if(event.getStatus() == KeeperState.SyncConnected){
System.out.println("連接成功");
cdl.coundown(); 線程數減一
}}} );
cdl.await(); //放開阻塞狀態
使用
創建節點 zk.create("/節點名",“節點值必須要寫值”.getBytes(), Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
節點類型:持久節點 PERSISTENT
臨時節點 EPHEMERAL
持久順序節點 PERSISTENT_SEQUENTIAL
臨時順序節點 EPHEMERAL_SEQUENTIAL
更新節點 Stat s = zk.setData("/節點名",“更新的值”.getBytes(),0); 返回節點信息 用Stat接收
獲取節點數據 byte[] data = zk.getData("/節點名稱", null, new Stat()); null是watch監控者,沒有監控者爲空
刪除節點 zk.delete("/節點名",0); 0是數據版本 如果相同則刪除,否則不做處理 -1是強制刪除
判斷節點是否存在 zk.exists("節點名",null); null是watch null是沒有
獲取子節點 List<String> nodes = zk.getChildren("/" ,null); 遍歷就可以看到結果