ZK-java api 創(chuàng)建節(jié)點(diǎn)實(shí)例

zk java 訪問第一例:

利用java API訪問zookeeper節(jié)點(diǎn)米苹,并創(chuàng)建一個(gè)/controller的節(jié)點(diǎn)糕伐,數(shù)據(jù)為字符串"hellozk".


當(dāng)主線程創(chuàng)建zk連接后,如果狀態(tài)符合要求蘸嘶,才進(jìn)行創(chuàng)建動(dòng)作良瞧; 否則,等待watcher線程狀態(tài)训唱,等等等褥蚯。。况增。等符合要求了再countDown,才創(chuàng)建zk目錄赞庶。使用CountDownLatch可以實(shí)現(xiàn)這個(gè)功能。
實(shí)踐吧少年
package chap4;

import org.apache.zookeeper.*;

import java.io.IOException;
import java.util.concurrent.CountDownLatch;

/**
 * countdownlatch
 * Created by niewj on 2016/12/19.
 */
public class ZkPathCreateTest {

    /**
     * 計(jì)數(shù):當(dāng)主線程創(chuàng)建zk連接后澳骤,如果狀態(tài)符合要求歧强,才進(jìn)行創(chuàng)建動(dòng)作;
     * 否則为肮,等待watcher線程狀態(tài)摊册,等等等。颊艳。丧靡。等符合要求了再countDown,才創(chuàng)建zk目錄。
     */
    CountDownLatch cdl = new CountDownLatch(1);

    /**
     * 連接zk籽暇,并創(chuàng)建一個(gè)目錄節(jié)點(diǎn)。
     * @throws IOException
     * @throws KeeperException
     * @throws InterruptedException
     */
    private void init() throws IOException, KeeperException, InterruptedException {

        // 1. watcher for zk
        Watcher watcherZk = new Watcher() {
            @Override
            public void process(WatchedEvent watchedEvent) {
                if (Event.KeeperState.SyncConnected == watchedEvent.getState()) {
                    System.out.println("狀態(tài)::達(dá)到同步連接饭庞;輸出path的狀態(tài): path ==> " + watchedEvent.getState());
                    cdl.countDown();
                } else {
                    System.out.println("狀態(tài)沒有達(dá)到同步連接的狀態(tài)戒悠,暫時(shí)不作為。舟山。绸狐。卤恳。");
                }
            }
        };

        // 2. init zk args
        ZooKeeper zk = new ZooKeeper("NIE-00:2181,NIE-01:2181,NIE-02:2181", 6000, watcherZk);

        cdl.await();

        // 3. create path /controller ephemeral
        String stat = zk.create("/controller", "hellozk".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
        System.out.println("created path is -->: " + stat);

    }

    public static void main(String[] args) {
        try {
            new ZkPathCreateTest().init();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (KeeperException e) {
            e.printStackTrace();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}

小結(jié):

  1. ZooKeeper構(gòu)造方法傳遞參數(shù):zk_url, 超時(shí)毫秒數(shù),狀態(tài)監(jiān)視器
  2. zk.create(path, data, acl列表, 創(chuàng)建的數(shù)據(jù)類型)
  3. CountDownLatch寒矿,倒數(shù)計(jì)數(shù)線程并發(fā)工具突琳。如果主線程有需要等待的地方,先設(shè)置await(), 在別的線程任務(wù)準(zhǔn)備妥當(dāng)可以突破await處往下走的時(shí)候在等待線程那里countDown()符相,countDown的次數(shù)拆融,使得等待的剩余0個(gè)的時(shí)候,主線程就可以繼續(xù)接下來的動(dòng)作了啊终。這里的話镜豹,就是,zk連接需要等待確認(rèn)狀態(tài)蓝牲,才可以創(chuàng)建節(jié)點(diǎn)趟脂,所以,確認(rèn)狀態(tài)準(zhǔn)備好之后例衍,就在watcher里countDown昔期,然后主線程檢測(cè)到1-1=0,就可以突破await佛玄,執(zhí)行下面的create動(dòng)作了硼一。

燃燒吧,passion

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末翎嫡,一起剝皮案震驚了整個(gè)濱河市欠动,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌惑申,老刑警劉巖具伍,帶你破解...
    沈念sama閱讀 217,826評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異圈驼,居然都是意外死亡人芽,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門绩脆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來萤厅,“玉大人,你說我怎么就攤上這事靴迫√栉叮” “怎么了?”我有些...
    開封第一講書人閱讀 164,234評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵玉锌,是天一觀的道長名挥。 經(jīng)常有香客問我,道長主守,這世上最難降的妖魔是什么禀倔? 我笑而不...
    開封第一講書人閱讀 58,562評(píng)論 1 293
  • 正文 為了忘掉前任榄融,我火速辦了婚禮,結(jié)果婚禮上救湖,老公的妹妹穿的比我還像新娘愧杯。我一直安慰自己,他們只是感情好鞋既,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,611評(píng)論 6 392
  • 文/花漫 我一把揭開白布力九。 她就那樣靜靜地躺著,像睡著了一般涛救。 火紅的嫁衣襯著肌膚如雪畏邢。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,482評(píng)論 1 302
  • 那天检吆,我揣著相機(jī)與錄音舒萎,去河邊找鬼。 笑死蹭沛,一個(gè)胖子當(dāng)著我的面吹牛臂寝,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播摊灭,決...
    沈念sama閱讀 40,271評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼咆贬,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了帚呼?” 一聲冷哼從身側(cè)響起掏缎,我...
    開封第一講書人閱讀 39,166評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎煤杀,沒想到半個(gè)月后眷蜈,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,608評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡沈自,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,814評(píng)論 3 336
  • 正文 我和宋清朗相戀三年酌儒,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片枯途。...
    茶點(diǎn)故事閱讀 39,926評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡忌怎,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出酪夷,到底是詐尸還是另有隱情榴啸,我是刑警寧澤,帶...
    沈念sama閱讀 35,644評(píng)論 5 346
  • 正文 年R本政府宣布晚岭,位于F島的核電站插掂,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜辅甥,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,249評(píng)論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望燎竖。 院中可真熱鬧璃弄,春花似錦、人聲如沸构回。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽纤掸。三九已至脐供,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間借跪,已是汗流浹背政己。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留掏愁,地道東北人歇由。 一個(gè)月前我還...
    沈念sama閱讀 48,063評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像果港,于是被迫代替她去往敵國和親沦泌。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,871評(píng)論 2 354

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