精品视频在线免费观看_国产精品资源网_欧美日韩亚洲综合在线_自拍视频国产精品

原創生活

國內 商業 滾動

基金 金融 股票

期貨金融

科技 行業 房產

銀行 公司 消費

生活滾動

保險 海外 觀察

財經 生活 期貨

當前位置:滾動 >

ZooKeeper分布式協調服務(節點分類、事件監聽、java集成)

文章來源:阿里云  發布時間: 2023-01-12 03:55:47  責任編輯:cfenews.com
+|-

ZooKeeper是一個分布式的,開放源碼的分布式應用程序協調服務,是Google的Chubby一個開源的實現,是Hadoop和Hbase的重要組件。它是一個為分布式應用提供一致性服務的軟件,提供的功能包括:配置維護、域名服務、分布式同步、組服務等。

安裝啟動

安裝:把zk安裝包上傳到/opt目錄下,并切換到/opt目錄下,執行以下指令


(資料圖片僅供參考)

#解壓tar-zxvfzookeeper-3.7.0-bin.tar.gz#重命名mvapache-zookeeper-3.7.0-bin/zookeeper#打開zookeeper根目錄cd/opt/zookeeper#創建一個數據目錄,備用mkdirdata#打開zk的配置目錄cd/opt/zookeeper/conf#copy配置文件,zk啟動時會加載zoo.cfg文件cpzoo_sample.cfgzoo.cfg#編輯配置文件vimzoo.cfg#修改dataDir參數為之前創建的數據目錄:/opt/zookeeper/data#切換到bin目錄cd/opt/zookeeper/bin#啟動./zkServer.shstart./zkServer.shstatus#查看啟動狀態./zkServer.shstop#停止./zkServer.shrestart#重啟./zkCli.sh#查看zk客戶端

如下,說明啟動成功:

相關概念

Zookeeper提供一個多層級的節點命名空間(節點稱為znode),每個節點都用一個以斜杠(/)分隔的路徑表示,而且每個節點都有父節點(根節點除外),非常類似于文件系統。并且每個節點都是唯一的。

znode節點有四種類型:

PERSISTENT:永久節點。客戶端與zookeeper斷開連接后,該節點依舊存在

EPHEMERAL:臨時節點。客戶端與zookeeper斷開連接后,該節點被刪除

PERSISTENT_SEQUENTIAL:永久節點、序列化。客戶端與zookeeper斷開連接后,該節點依舊存在,只是Zookeeper給該節點名稱進行順序編號

EPHEMERAL_SEQUENTIAL:臨時節點、序列化。客戶端與zookeeper斷開連接后,該節點被刪除,只是Zookeeper給該節點名稱進行順序編號

操作節點

創建這四種節點:

[zk:localhost:2181(CONNECTED)0]create/aatest#創建持久化節點Created/aa[zk:localhost:2181(CONNECTED)1]create-s/bbtest#創建持久序列化節點Created/bb0000000001[zk:localhost:2181(CONNECTED)2]create-e/cctest#創建臨時節點Created/cc[zk:localhost:2181(CONNECTED)3]create-e-s/ddtest#創建臨時序列化節點Created/dd0000000003[zk:localhost:2181(CONNECTED)4]ls/#查看某個節點下的子節點[aa,bb0000000001,cc,dd0000000003,zookeeper][zk:localhost:2181(CONNECTED)5]stat/#查看某個節點的狀態cZxid=0x0ctime=ThuJan0108:00:00CST1970mZxid=0x0mtime=ThuJan0108:00:00CST1970pZxid=0x5cversion=3dataVersion=0aclVersion=0ephemeralOwner=0x0dataLength=0numChildren=5[zk:localhost:2181(CONNECTED)6]get/aa#查看某個節點的內容test[zk:localhost:2181(CONNECTED)11]delete/aa#刪除某個節點[zk:localhost:2181(CONNECTED)7]ls/#再次查看[bb0000000001,cc,dd0000000003,zookeeper]

事件監聽

在讀取數據時,我們可以同時對節點設置事件監聽,當節點數據或結構變化時,zookeeper會通知客戶端。當前zookeeper針對節點的監聽有如下四種事件:

節點創建:stat-w/xx

當/xx節點創建時:NodeCreated

節點刪除:stat-w/xx

當/xx節點刪除時:NodeDeleted

節點數據修改:get-w/xx

當/xx節點數據發生變化時:NodeDataChanged

子節點變更:ls-w/xx

當/xx節點的子節點創建或者刪除時:NodeChildChanged

java客戶端

ZooKeeper的java客戶端有:原生客戶端、ZkClient、Curator框架(類似于redisson,有很多功能性封裝)。

引入依賴

org.apache.zookeeperzookeeper3.7.0

常用api及其方法

publicclassZkTest{publicstaticvoidmain(String[]args)throwsKeeperException,InterruptedException{//獲取zookeeper鏈接CountDownLatchcountDownLatch=newCountDownLatch(1);ZooKeeperzooKeeper=null;try{zooKeeper=newZooKeeper("172.16.116.100:2181",30000,newWatcher{@Overridepublicvoidprocess(WatchedEventevent){if(Event.KeeperState.SyncConnected.equals(event.getState)&&Event.EventType.None.equals(event.getType)){System.out.println("獲取鏈接成功。。。。。。"+event);countDownLatch.countDown;}}});countDownLatch.await;}catch(Exceptione){e.printStackTrace;}//創建一個節點,1-節點路徑2-節點內容3-節點的訪問權限4-節點類型//OPEN_ACL_UNSAFE:任何人可以操作該節點//CREATOR_ALL_ACL:創建者擁有所有訪問權限//READ_ACL_UNSAFE:任何人都可以讀取該節點//zooKeeper.create("/zktest/aa","haha~~".getBytes,ZooDefs.Ids.OPEN_ACL_UNSAFE,CreateMode.PERSISTENT);zooKeeper.create("/test","haha~~".getBytes,ZooDefs.Ids.OPEN_ACL_UNSAFE,CreateMode.EPHEMERAL);//zooKeeper.create("/zktest/cc","haha~~".getBytes,ZooDefs.Ids.OPEN_ACL_UNSAFE,CreateMode.PERSISTENT_SEQUENTIAL);//zooKeeper.create("/zktest/dd","haha~~".getBytes,ZooDefs.Ids.OPEN_ACL_UNSAFE,CreateMode.EPHEMERAL_SEQUENTIAL);//zooKeeper.create("/zktest/dd","haha~~".getBytes,ZooDefs.Ids.OPEN_ACL_UNSAFE,CreateMode.EPHEMERAL_SEQUENTIAL);//zooKeeper.create("/zktest/dd","haha~~".getBytes,ZooDefs.Ids.OPEN_ACL_UNSAFE,CreateMode.EPHEMERAL_SEQUENTIAL);//判斷節點是否存在Statstat=zooKeeper.exists("/test",true);if(stat!=null){System.out.println("當前節點存在!"+stat.getVersion);}else{System.out.println("當前節點不存在!");}//判斷節點是否存在,同時添加監聽zooKeeper.exists("/test",event->{});//獲取一個節點的數據byte[]data=zooKeeper.getData("/zktest/ss0000000001",false,null);System.out.println(newString(data));//查詢一個節點的所有子節點Listchildren=zooKeeper.getChildren("/test",false);System.out.println(children);//更新zooKeeper.setData("/test","wawa...".getBytes,stat.getVersion);//刪除一個節點//zooKeeper.delete("/test",-1);if(zooKeeper!=null){zooKeeper.close;}}}

關鍵詞: 事件監聽 協調服務

專題首頁|財金網首頁

原創
新聞

精彩
互動

獨家
觀察

京ICP備2021034106號-38   營業執照公示信息  聯系我們:55 16 53 8 @qq.com  財金網  版權所有  cfenews.com
主站蜘蛛池模板: 日韩亚洲成人av在线| 国产精品免费在线播放| 91av在线不卡| 国产精品久久久久久婷婷天堂 | 国产精品成人一区二区| 国产精品高潮呻吟久久av野狼| 欧洲精品在线视频| 日本最新一区二区三区视频观看 | 一区二区三区欧美在线| 色综合久久久久无码专区| 日韩欧美国产免费| 日韩一区av在线| 91精品国产成人| 日本午夜精品电影| 国产成人精品av在线| 国模吧无码一区二区三区| 韩国日本不卡在线| 久久精品视频亚洲| 国产精品成av人在线视午夜片| 久久精品亚洲精品| 91精品91久久久久久| 国产精品麻豆va在线播放| 久久久精品亚洲| 欧美激情久久久久久| 亚洲一区在线直播| 国产精品久久久久久亚洲调教| 日韩国产精品一区二区三区| 国产欧美欧洲在线观看| 九九九九免费视频| 国产欧美日韩综合精品| 亚洲欧洲精品一区| 日本久久久久久久久| 日本国产一区二区三区| 在线精品亚洲一区二区| 国产精品久久久久久久久免费看 | 国产精品偷伦免费视频观看的| 97精品一区二区视频在线观看 | 国产专区在线视频| 久久久久久久久久福利| 日韩亚洲成人av在线| 色黄久久久久久|