日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Java操作Zookeeper原理及過程詳解

瀏覽:110日期:2022-09-01 13:29:13

ZooKeeper 是一個典型的分布式數據一致性解決方案,分布式應用程序可以基于 ZooKeeper 實現諸如數據發布/訂閱、負載均衡、命名服務、分布式協調/通知、集群管理、Master 選舉、分布式鎖和分布式隊列等功能。

Zookeeper 一個最常用的使用場景就是用于擔任服務生產者和服務消費者的注冊中心。 服務生產者將自己提供的服務注冊到Zookeeper中心,服務的消費者在進行服務調用的時候先到Zookeeper中查找服務,獲取到服務生產者的詳細信息之后,再去調用服務生產者的內容與數據。如下圖所示,在 Dubbo架構中 Zookeeper 就擔任了注冊中心這一角色。

maven依賴

<dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> <version>3.6.0</version></dependency>

程序其它依賴:

<!-- Logger(log4j2) --><dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.11.2</version></dependency><!-- Log4j 1.x API Bridge --><dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-1.2-api</artifactId> <version>2.11.2</version></dependency><!-- SLF4J Bridge --><dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-slf4j-impl</artifactId> <version>2.11.2</version></dependency><dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> <version>3.6.0</version> <exclusions> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> </exclusions></dependency>

API操作代碼:

package com.zhi.test;import java.util.List;import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;import org.apache.zookeeper.CreateMode;import org.apache.zookeeper.WatchedEvent;import org.apache.zookeeper.Watcher;import org.apache.zookeeper.ZooDefs.Ids;import org.apache.zookeeper.ZooKeeper;import org.apache.zookeeper.data.Stat;import org.junit.jupiter.api.AfterAll;import org.junit.jupiter.api.BeforeAll;import org.junit.jupiter.api.MethodOrderer;import org.junit.jupiter.api.Order;import org.junit.jupiter.api.Test;import org.junit.jupiter.api.TestInstance;import org.junit.jupiter.api.TestInstance.Lifecycle;import org.junit.jupiter.api.TestMethodOrder;/** * Zookeeper操作測試 * * @author 張遠志 * @since 2020年5月3日14:31:28 * */@TestInstance(Lifecycle.PER_CLASS)@TestMethodOrder(MethodOrderer.OrderAnnotation.class)public class ZookeeperTest { private final Logger logger = LogManager.getLogger(this.getClass()); private ZooKeeper zooKeeper; private final String path = '/test'; @BeforeAll public void init() throws Exception { zooKeeper = new ZooKeeper('192.168.59.131:2181', 60000, new Watcher() { public void process(WatchedEvent event) {logger.info('事件類型:{},路徑:{}', event.getType(), event.getPath()); } }); } /** * 添加數據,當路徑已經存在時會報錯,初始版本號為0。第三個參數是權限控制。 <br> * 第四個參數,CreateMode: * <li>PERSISTENT:持久化保存 * <li>PERSISTENT_SEQUENTIAL:持久化保存,并且路徑附加一個自動增長的序號 * <li>EPHEMERAL:臨時數據,客戶端斷開連接時自動刪除數據(dubbo就是采用這種機制) * <li>EPHEMERAL_SEQUENTIAL:客戶端斷開連接時自動刪除數據,并且路徑會附加一個自動增長的序號 * <li>CONTAINER: * <li>PERSISTENT_WITH_TTL:客戶端斷開連接時自動刪除數據,當節點在指定時間沒有被修改且沒有子目錄時,數據會被刪除 * <li>PERSISTENT_SEQUENTIAL_WITH_TTL:客戶端斷開連接時自動刪除數據,路徑會附加一個自動增長的序號,且當節點在指定時間沒有被修改且沒有子目錄時,數據會被刪除 */ @Order(1) @Test public void create() { try { String back = zooKeeper.create(path, '這是一個測試'.getBytes(), Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT); logger.info('添加一條數據成功,實際路徑:{}', back); } catch (Exception e) { logger.error('調用create出錯', e); } } /** * 判斷路徑是否存在,不存在時返回null */ @Order(2) @Test public void exists() { try { Stat stat = zooKeeper.exists(path, false); logger.info('路徑為{}的節點{}存在', path, stat == null ? '不' : ''); } catch (Exception e) { logger.error('調用exists出錯', e); } } /** * 查詢數據,路徑不存在時會報錯 */ @Order(3) @Test public void find() { try { byte[] bits = zooKeeper.getData(path, false, new Stat()); // 路徑不存在時會報錯 String data = new String(bits); logger.info('路徑{}查詢到數據:{}', path, data); } catch (Exception e) { logger.error('調用getData出錯', e); } } /** * 獲取子目錄,結果為空時返回一個長度為0的ArrayList */ @Order(3) @Test public void children() { try { List<String> list = zooKeeper.getChildren(path, false); logger.info('路徑{}的子目錄有:{}', path, String.join('、', list.toArray(new String[0]))); } catch (Exception e) { logger.error('調用getChildren出錯', e); } } /** * 修改數據,路徑不存在時會報錯,版本號與存儲中不一致時也報錯 */ @Order(4) @Test public void udpate() { try { Stat stat = zooKeeper.exists(path, false); if (stat != null) {stat = zooKeeper.setData(path, '這是一個修改測試'.getBytes(), stat.getVersion()); // 版本號為-1時不做版本校驗logger.info('數據修改成功,原版本號:{},新版本號:{}', stat.getAversion(), stat.getVersion()); } } catch (Exception e) { logger.error('調用setData出錯', e); } } /** * 刪除節點,路徑不存在時報錯,版本號不一致時也會報錯 */ @Order(5) @Test public void delete() { try { zooKeeper.delete(path, -1); // -1表示不做版本校驗 logger.info('根據path刪除數據成功'); } catch (Exception e) { logger.error('調用delete出錯', e); } } @AfterAll public void destory() throws Exception { if (zooKeeper != null) { zooKeeper.close(); } }}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Java
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
在线精品一区二区| 亚洲精品影视| 麻豆国产欧美一区二区三区| 日韩专区视频网站| 在线观看一区| 日韩精品免费视频人成| 亚洲精品美女91| 日韩精品导航| 国产毛片精品久久| 激情久久一区二区| 国产一区二区三区免费在线| 国际精品欧美精品| 丁香婷婷久久| 青青久久av| 精品国模一区二区三区| 久久久久网站| 久久国产福利| 国产亚洲精品美女久久久久久久久久| 91精品视频一区二区| 国产精品成人**免费视频| 精品不卡一区| 激情欧美一区二区三区| 在线亚洲一区| 日本在线不卡视频| 精品视频97| 亚洲不卡av不卡一区二区| 精品在线播放| 日韩一区免费| 91嫩草亚洲精品| 99久精品视频在线观看视频| 亚洲黄页一区| 国产乱人伦精品一区| 精品三级在线| 日韩精品视频网站| 久久亚洲色图| 国产图片一区| 日韩影院免费视频| 欧美激情综合| 国产无遮挡裸体免费久久| 一区免费视频| 在线亚洲精品| 精品国产中文字幕第一页| 国产精品hd| 日韩三区免费| 在线一区视频| 欧美精品1区| 国内精品99| 国产精品一区二区美女视频免费看| 色综合五月天| 蜜桃免费网站一区二区三区| 成人精品动漫一区二区三区| 日韩精品一二三四| 91一区二区三区四区| 亚洲精品乱码| 91精品国产乱码久久久久久久| 日韩激情网站| 久久精品高清| 国产精品久久乐| 国产高清一区| 国产精品一卡| 亚洲黄色免费看| 免费观看在线综合| 9999国产精品| 日本国产亚洲| 午夜国产欧美理论在线播放 | 欧美日韩一区二区三区在线电影| 神马午夜在线视频| 日韩午夜视频在线| 国产精品av一区二区| 国产精品一国产精品| 男人的天堂久久精品| 91亚洲一区| 久久精品国产福利| 欧美精品资源| 日韩不卡一区二区| 国产精品v一区二区三区| 欧美亚洲tv| 精品国产美女a久久9999| 久久久噜噜噜| 国产欧美精品| 亚洲福利精品| 免费视频一区二区三区在线观看| 久久精品亚洲| 亚洲一区成人| 韩国精品主播一区二区在线观看 | 日韩在线欧美| 国产精品久久久久久av公交车 | 日韩va亚洲va欧美va久久| 亚洲第一精品影视| 国产一区二区三区日韩精品| 欧美综合社区国产| 亚洲精品在线二区| 中文国产一区| 免费黄色成人| 91精品蜜臀一区二区三区在线| 久久精品免视看国产成人| 免费一级片91| 国产一区导航| 中文一区二区| 午夜国产欧美理论在线播放| 亚洲成人国产| 久久久成人网| 久久久夜精品| 国产 日韩 欧美一区| 91亚洲人成网污www| 国产一区二区三区四区五区| 欧美激情视频一区二区三区在线播放| 亚洲国产一区二区三区在线播放| 久久精品主播| 久久久久久久久久久9不雅视频| 国产网站在线| 国际精品欧美精品| 精品久久亚洲| yellow在线观看网址| 日本黄色精品| 蜜臀久久99精品久久久久宅男| 日本不良网站在线观看| 国产日韩欧美在线播放不卡| 日韩在线黄色| 在线视频日韩| 三级亚洲高清视频| 亚洲一区二区免费在线观看| 午夜国产精品视频免费体验区| 久久久久久夜| 国产成年精品| 国产成人精品福利| 国产精品久久国产愉拍| 国产日韩欧美高清免费| 欧美日韩精品一区二区三区视频| 97se亚洲| 国产高清亚洲| 国产精品13p| 日本韩国欧美超级黄在线观看| 欧美日韩亚洲在线观看| 婷婷色综合网| 在线国产精品一区| 欧美精品国产白浆久久久久| 国产精品66| 国产精品国产一区| 桃色一区二区| 午夜久久99| 免费看欧美美女黄的网站| 亚洲精品婷婷| 国产精品地址| 精品日韩视频| 首页国产欧美日韩丝袜| 日韩精品高清不卡| 精品亚洲免a| 99热精品久久| 免费人成网站在线观看欧美高清| 日韩av一区二| 国产一区二区三区国产精品| 亚洲黄色网址| 蜜桃伊人久久| 国产精品视频一区视频二区| 国产v日韩v欧美v| 亚洲高清久久| 日韩欧美2区| 日韩av片子| 不卡一区2区| 欧美亚洲网站| 福利视频一区| 国产精品久久久久久久久久白浆 | 亚洲精品99| 精品中文在线| 国产欧美日韩亚洲一区二区三区| 午夜国产欧美理论在线播放| 色婷婷精品视频| 国产一区二区三区四区五区传媒| 激情视频一区二区三区| 久久精品毛片| 黑丝美女一区二区| 在线看片日韩| 国产成人久久精品麻豆二区| 91精品国产调教在线观看| 视频一区中文字幕精品| 国产videos久久| 亚洲精品综合| www在线观看黄色| 在线观看亚洲精品福利片| 国产一区二区三区91| 日韩在线播放一区二区| 国产 日韩 欧美 综合 一区| 免播放器亚洲| 免费日韩成人| 免费中文字幕日韩欧美| 国内精品亚洲| 亚洲精品日本| 91精品国产福利在线观看麻豆| 青草av.久久免费一区| 亚洲电影在线| 久久一区欧美| 亚洲视频二区| 99久久精品费精品国产| 麻豆精品av| 深夜福利一区| 欧美搞黄网站| 国产中文欧美日韩在线| 日韩精品一区二区三区av| 91精品国产福利在线观看麻豆|