ZkClient 是一個開源軟件,也託管在 github。它封裝了 zookeeper 原生 API。java
先須要在 javaws 網站上下載 ZKClient 的 jar 包。git
import java.util.List; import com.github.zkclient.IZkChildListener; import com.github.zkclient.ZkClient; public class Get_Children_Sample { public static void main(String[] args) throws Exception { String path = "/zookeeper-ch5"; ZkClient zkClient = new ZkClient("202.201.*.*:2100", 5000); zkClient.subscribeChildChanges(path, new IZkChildListener(){ public void handleChildChange(String parentPath, List<String> currentChilds) throws Exception{ System.out.println(parentPath + " 's child changed, currentChilds:" + currentChilds); } }); zkClient.createPersistent(path); Thread.sleep( 1000 ); System.out.println(zkClient.getChildren(path)); zkClient.createPersistent(path+"/c1"); Thread.sleep( 1000 ); zkClient.delete(path+"/c1"); Thread.sleep( 1000 ); zkClient.delete(path); Thread.sleep( Integer.MAX_VALUE); } }
注意 ZkClient
中的 IP 地址應該和 /opt/zookeeper-3.4.6/conf/zoo.cfg
中配置的 IP 地址一致,且在 /opt/zookeeper-3.4.6/bin
目錄下啓動 zookeepergithub
./zkServer.sh start
服務器
調用 ZkClient create API
增長節點。網站
調用 ZkClient delete API
刪除節點。code
客戶端經過註冊相關的事件監聽來實現對 ZooKeeper 服務端事件的訂閱。使用以下API來進行監聽:htm
List<String> subscribeChildChange(String path, IZkChildListener listener)
接口
訂閱的事件由 Listener 接口來處理:事件
public interface IZkChildListener(){ public void handleChildChange(String parentPath, List<String> currentChilds) throws Exception; }
打印結果get
/zookeeper-ch5 's child changed, currentChilds:[] [] /zookeeper-ch5 's child changed, currentChilds:[c1] /zookeeper-ch5 's child changed, currentChilds:[] /zookeeper-ch5 's child changed, currentChilds:null
調用 createPersistent(path)
會建立父節點 [],客戶端收到來自服務器的事件通知,打印 /zookeeper-ch5 's child changed, currentChilds:[]
。
而後添加 /c1
子節點,客戶端收到事件通知,打印。