zkclient使用實例(常用方法)

<!--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);

}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章