Zookeeper學(xué)習(xí)筆記(5)—— 使用Zookeeper開源客戶端Curator

首先創(chuàng)建一個Maven項目勤讽,引入pom,

    <dependencies>
        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-framework</artifactId>
            <version>4.3.0</version>
        </dependency>

        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-recipes</artifactId>
            <version>4.3.0</version>
        </dependency>

    </dependencies>
  1. 創(chuàng)建會話
    public static void main(String[] args) throws Exception{
        RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000, 3);
        CuratorFramework client = CuratorFrameworkFactory.newClient("127.0.0.1:2181", retryPolicy);
        client.start();

        Thread.sleep(Integer.MAX_VALUE);

    }

輸出結(jié)果:

2021-05-04 11:19:38.354 [main] INFO  o.a.curator.framework.imps.CuratorFrameworkImpl - Starting
2021-05-04 11:19:38.358 [main] INFO  org.apache.zookeeper.ZooKeeper - Initiating client connection, connectString=127.0.0.1:2181 sessionTimeout=60000 watcher=org.apache.curator.ConnectionState@76a3e297
2021-05-04 11:19:38.362 [main] INFO  org.apache.zookeeper.common.X509Util - Setting -D jdk.tls.rejectClientInitiatedRenegotiation=true to disable client-initiated TLS renegotiation
2021-05-04 11:19:38.374 [main] INFO  org.apache.zookeeper.ClientCnxnSocket - jute.maxbuffer value is 4194304 Bytes
2021-05-04 11:19:38.380 [main] INFO  org.apache.zookeeper.ClientCnxn - zookeeper.request.timeout value is 0. feature enabled=
2021-05-04 11:19:38.390 [main-SendThread(127.0.0.1:2181)] INFO  org.apache.zookeeper.ClientCnxn - Opening socket connection to server localhost/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error)
2021-05-04 11:19:38.393 [main] INFO  o.a.curator.framework.imps.CuratorFrameworkImpl - Default schema
2021-05-04 11:19:38.407 [main-SendThread(127.0.0.1:2181)] INFO  org.apache.zookeeper.ClientCnxn - Socket connection established, initiating session, client: /127.0.0.1:61954, server: localhost/127.0.0.1:2181
2021-05-04 11:19:38.446 [main-SendThread(127.0.0.1:2181)] INFO  org.apache.zookeeper.ClientCnxn - Session establishment complete on server localhost/127.0.0.1:2181, sessionid = 0x1003dddef680000, negotiated timeout = 40000
2021-05-04 11:19:38.451 [main-EventThread] INFO  o.a.curator.framework.state.ConnectionStateManager - State change: CONNECTED
  1. 創(chuàng)建節(jié)點
    private static String path = "/zk-test/create-node";

    private static CuratorFramework client = CuratorFrameworkFactory.builder()
            .connectString("127.0.0.1:2181")
            .sessionTimeoutMs(5000)
            .retryPolicy(new ExponentialBackoffRetry(1000,3))
            .build();

    public static void main(String[] args) throws Exception{
        client.start();
        client.create()
                .creatingParentsIfNeeded()  // 如果父節(jié)點不存在待错,會遞歸的創(chuàng)建
//                .withMode(CreateMode.EPHEMERAL)  // 節(jié)點類型
                .forPath(path, "init".getBytes()); // 內(nèi)容

        Thread.sleep(30000);

    }
  1. 刪除節(jié)點
      private static String path = "/zk-test/delete-node";

    private static CuratorFramework client = CuratorFrameworkFactory.builder()
            .connectString("127.0.0.1:2181")
            .sessionTimeoutMs(5000)
            .retryPolicy(new ExponentialBackoffRetry(1000,3))
            .build();

    public static void main(String[] args) throws Exception{
        client.start();
        client.create()
                .creatingParentsIfNeeded()  // 如果父節(jié)點不存在,會遞歸的創(chuàng)建
                .withMode(CreateMode.EPHEMERAL)  // 節(jié)點類型
                .forPath(path, "delete".getBytes()); // 內(nèi)容

        Stat stat = new Stat();

        byte[] bytes = client.getData().storingStatIn(stat).forPath(path);

        System.out.println("============" + stat);

        System.out.println("content = " + new String(bytes));

        client.delete().deletingChildrenIfNeeded() // 遞歸刪除子節(jié)點
                .withVersion(stat.getVersion())
                .forPath(path); 

        byte[] bytes2 = client.getData().storingStatIn(stat).forPath(path);

        System.out.println("after delete content = " + new String(bytes2));

        Thread.sleep(30000);
    }
  1. 讀取數(shù)據(jù)
    private static String path = "/zk-test/get-node";

    private static CuratorFramework client = CuratorFrameworkFactory.builder()
            .connectString("127.0.0.1:2181")
            .sessionTimeoutMs(5000)
            .retryPolicy(new ExponentialBackoffRetry(1000,3))
            .build();

    public static void main(String[] args) throws Exception{
        client.start();
        client.create()
                .creatingParentsIfNeeded()  // 如果父節(jié)點不存在会钝,會遞歸的創(chuàng)建
                .withMode(CreateMode.EPHEMERAL)  // 節(jié)點類型
                .forPath(path, "get".getBytes()); // 內(nèi)容

        Stat stat = new Stat();

        byte[] bytes = client.getData()
          .storingStatIn(stat)   // 把信息屬性賦值給stat對象
          .forPath(path);

        System.out.println("============" + stat);

        System.out.println("content = " + new String(bytes));

        Thread.sleep(30000);
    }

  1. 更新數(shù)據(jù)
    private static String path = "/zk-test/set-node";

    private static CuratorFramework client = CuratorFrameworkFactory.builder()
            .connectString("127.0.0.1:2181")
            .sessionTimeoutMs(5000)
            .retryPolicy(new ExponentialBackoffRetry(1000,3))
            .build();

    public static void main(String[] args) throws Exception{
        client.start();
        client.create()
                .creatingParentsIfNeeded()  // 如果父節(jié)點不存在纫雁,會遞歸的創(chuàng)建
                .withMode(CreateMode.EPHEMERAL)  // 節(jié)點類型
                .forPath(path, "set".getBytes()); // 內(nèi)容

        Stat stat = new Stat();

        byte[] bytes = client.getData().storingStatIn(stat).forPath(path);

        System.out.println("============" + stat);

        System.out.println("content = " + new String(bytes));



        client.setData().forPath(path, "newContent".getBytes());

        byte[] bytes2 = client.getData().storingStatIn(stat).forPath(path);

        System.out.println("============" + stat);

        System.out.println("new content = " + new String(bytes2));

        Thread.sleep(30000);
    }
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市旺拉,隨后出現(xiàn)的幾起案子刊苍,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,602評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡掸读,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評論 2 382
  • 文/潘曉璐 我一進店門宏多,熙熙樓的掌柜王于貴愁眉苦臉地迎上來儿惫,“玉大人,你說我怎么就攤上這事伸但∩銮耄” “怎么了?”我有些...
    開封第一講書人閱讀 152,878評論 0 344
  • 文/不壞的土叔 我叫張陵砌烁,是天一觀的道長筐喳。 經(jīng)常有香客問我,道長函喉,這世上最難降的妖魔是什么避归? 我笑而不...
    開封第一講書人閱讀 55,306評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮管呵,結(jié)果婚禮上梳毙,老公的妹妹穿的比我還像新娘。我一直安慰自己捐下,他們只是感情好账锹,可當我...
    茶點故事閱讀 64,330評論 5 373
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著坷襟,像睡著了一般奸柬。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上婴程,一...
    開封第一講書人閱讀 49,071評論 1 285
  • 那天廓奕,我揣著相機與錄音,去河邊找鬼档叔。 笑死桌粉,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的衙四。 我是一名探鬼主播铃肯,決...
    沈念sama閱讀 38,382評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼传蹈!你這毒婦竟也來了押逼?” 一聲冷哼從身側(cè)響起步藕,我...
    開封第一講書人閱讀 37,006評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎宴胧,沒想到半個月后漱抓,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體表锻,經(jīng)...
    沈念sama閱讀 43,512評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡恕齐,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,965評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了瞬逊。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片显歧。...
    茶點故事閱讀 38,094評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖确镊,靈堂內(nèi)的尸體忽然破棺而出士骤,到底是詐尸還是另有隱情,我是刑警寧澤蕾域,帶...
    沈念sama閱讀 33,732評論 4 323
  • 正文 年R本政府宣布拷肌,位于F島的核電站,受9級特大地震影響旨巷,放射性物質(zhì)發(fā)生泄漏巨缘。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,283評論 3 307
  • 文/蒙蒙 一采呐、第九天 我趴在偏房一處隱蔽的房頂上張望若锁。 院中可真熱鬧,春花似錦斧吐、人聲如沸又固。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽仰冠。三九已至,卻和暖如春蝶糯,著一層夾襖步出監(jiān)牢的瞬間洋只,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評論 1 262
  • 我被黑心中介騙來泰國打工裳涛, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留木张,地道東北人。 一個月前我還...
    沈念sama閱讀 45,536評論 2 354
  • 正文 我出身青樓端三,卻偏偏與公主長得像舷礼,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子郊闯,可洞房花燭夜當晚...
    茶點故事閱讀 42,828評論 2 345

推薦閱讀更多精彩內(nèi)容