zkClient操作

zkClient在原生API的基礎(chǔ)上進(jìn)行了封裝,簡化了zookeeper的復(fù)雜性。

另外可以參照:http://www.cnblogs.com/shengkejava/p/5633801.html

創(chuàng)建客戶端方法:ZKClient(Arguments)
參數(shù)1:zkServers,zookeeper服務(wù)器地址,用“,”分隔。
參數(shù)2:sessionTimeout,會話超時時間,單位毫秒,默認(rèn)為30000ms。
參數(shù)3:connectionTimeout,連接超時時間。
參數(shù)4:IZkConnection接口的實現(xiàn)類。
參數(shù)5:zkSerializer,自定義序列化實現(xiàn)。

注意:出來添加zookeeper的包還有引入zkClient的包

【代碼】

import org.I0Itec.zkclient.ZkClient;
import org.I0Itec.zkclient.ZkConnection;
import org.apache.zookeeper.CreateMode;

/**
 * 
 * @author lvfang
 * 
 * 
 *    zkClient在原生API的基礎(chǔ)上進(jìn)行了封裝,簡化了zookeeper的復(fù)雜性。
 *    不要開發(fā)者自己手動創(chuàng)建watcher
 * 
 */
public class ZkClientTest {

    // zookeeper地址
    static final String CONNECT_ARRD = "192.168.1.201:2181";
    // 超時時間
    static final int SESSION_OUTTIME = 5000;

    public static void main(String[] args) {

        ZkClient zkClient = new ZkClient(new ZkConnection(CONNECT_ARRD),SESSION_OUTTIME);

        /**
         * 添加
         */
        zkClient.create("/testZkclient", "zkclient_Test", CreateMode.EPHEMERAL);
        zkClient.createPersistent("/testZkclient/aaa");// 持久化節(jié)點創(chuàng)建(遞歸創(chuàng)建)
        zkClient.createEphemeral("");// 臨時節(jié)點創(chuàng)建

        /**
         * 刪除
         */
        zkClient.delete("/testZkclient");// 刪除節(jié)點
        zkClient.deleteRecursive("/testZkclient");// 遞歸刪除

        /**
         * 修改節(jié)點數(shù)據(jù)
         */
        zkClient.writeData("/super/c1", "新內(nèi)容"); // 修改指定節(jié)點的值 (寫數(shù)據(jù))
        System.out.println(zkClient.readData("/super/c1"));// 讀數(shù)據(jù)

        /**
         * 是否存在
         */
        System.out.println(zkClient.exists("/super/c1")); // 判斷指定節(jié)點是否存在

        
        /**
         * 設(shè)置path和data,并讀取子節(jié)點和每個節(jié)點的內(nèi)容  
         */
        zkClient.createPersistent("/super", "1234"); // 創(chuàng)建并設(shè)置節(jié)點的值
        zkClient.createPersistent("/super/c1", "內(nèi)容一");
        zkClient.createPersistent("/super/c2", "內(nèi)容二");
        List<String> children = zkClient.getChildren("/super");
        for (String child : children) {
            System.out.print(child + ":");
            String childPath = "/super/" + child;
            String data = zkClient.readData(childPath); // 讀取指定節(jié)點的值
            System.out.println(data);
        }

        zkClient.close();
    }
}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,694評論 19 139
  • 本文將從系統(tǒng)模型、序列化與協(xié)議、客戶端工作原理、會話、服務(wù)端工作原理以及數(shù)據(jù)存儲等方面來揭示ZooKeeper的技...
    端木軒閱讀 3,915評論 0 42
  • 摘要 本節(jié)講解會話,會話狀態(tài)以及會話的創(chuàng)建,針對源碼SessionTrackerImp進(jìn)行展開,主要講解 會話 客...
    赤子心_d709閱讀 1,939評論 0 2
  • 臧克家在紀(jì)念魯迅有感的散文里寫著: 有的人活著 他已經(jīng)死了; 有的人死了 他還活著. 《死亡詩社》的影評有許多爭議...
    月嵐閱讀 1,305評論 0 2
  • 24個比利有24張面孔 每一個比利都真實 比利輪流換好出門的衣服 高跟鞋、煙斗或不離手的玩偶 還要搭配好長裙或斗篷...
    噠噠娃閱讀 293評論 2 3

友情鏈接更多精彩內(nèi)容