zookeeper之三 ZKClient客戶端的使用


ZKClient在原生API接口上進行了包裝,同時在內部實現了諸如session超時重連、watcher反復注冊等功能,使得zookeeper客戶端繁瑣的細節對開發人員透明。下面將從以下幾個方面來使用ZKClient這個Zookeeper客戶端。

  • 1.創建會話
  • 2.創建節點
  • 3.讀取數據
  • 4.更新數據
  • 5.刪除節點
  • 6.檢查節點是否存在

首先需要加入zkclient的maven依賴

        <!--zkClient-->
        <!-- https://mvnrepository.com/artifact/com.101tec/zkclient -->
        <dependency>
            <groupId>com.101tec</groupId>
            <artifactId>zkclient</artifactId>
            <version>0.10</version>
        </dependency>

 

public class ZKClientDemo {

    //zookeeper地址。集群時使用逗號分隔
    private static final String zkServers = "127.0.0.1:2181";

    public static void main(String[] args) {
        //創建會話
        ZkClient zkClient = new ZkClient(zkServers, 3000);

        //創建節點
        String path = "/mynode";
        String data = "hello";
        //zkClient.createPersistent(path);
        //zkClient.createEphemeral(path);
        zkClient.create(path, data, CreateMode.PERSISTENT);

        System.out.println("是否存在mynode節點:" + zkClient.exists(path));

        //列出根下所有節點
        System.out.println("根下擁有的子節點:" + zkClient.getChildren("/"));

        //讀取節點的數據
        System.out.println(zkClient.readData(path));

        //修改節點數據
        zkClient.writeData(path, "world");
        System.out.println(zkClient.readData(path));

        //刪除節點
        zkClient.delete(path);
        //zkClient.delete(path, 1);//刪除指定版本號的節點
        //zkClient.deleteRecursive(path);//級聯刪除所有子節點

        System.out.println("刪除節點后:" + zkClient.getChildren("/"));

        //關閉客戶端連接
        if (zkClient != null) {
            zkClient.close();
        }
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM