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

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

Java操作Zookeeper原理及過程詳解

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

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

Zookeeper 一個最常用的使用場景就是用于擔任服務生產(chǎn)者和服務消費者的注冊中心。 服務生產(chǎn)者將自己提供的服務注冊到Zookeeper中心,服務的消費者在進行服務調用的時候先到Zookeeper中查找服務,獲取到服務生產(chǎn)者的詳細信息之后,再去調用服務生產(chǎn)者的內容與數(shù)據(jù)。如下圖所示,在 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()); } }); } /** * 添加數(shù)據(jù),當路徑已經(jīng)存在時會報錯,初始版本號為0。第三個參數(shù)是權限控制。 <br> * 第四個參數(shù),CreateMode: * <li>PERSISTENT:持久化保存 * <li>PERSISTENT_SEQUENTIAL:持久化保存,并且路徑附加一個自動增長的序號 * <li>EPHEMERAL:臨時數(shù)據(jù),客戶端斷開連接時自動刪除數(shù)據(jù)(dubbo就是采用這種機制) * <li>EPHEMERAL_SEQUENTIAL:客戶端斷開連接時自動刪除數(shù)據(jù),并且路徑會附加一個自動增長的序號 * <li>CONTAINER: * <li>PERSISTENT_WITH_TTL:客戶端斷開連接時自動刪除數(shù)據(jù),當節(jié)點在指定時間沒有被修改且沒有子目錄時,數(shù)據(jù)會被刪除 * <li>PERSISTENT_SEQUENTIAL_WITH_TTL:客戶端斷開連接時自動刪除數(shù)據(jù),路徑會附加一個自動增長的序號,且當節(jié)點在指定時間沒有被修改且沒有子目錄時,數(shù)據(jù)會被刪除 */ @Order(1) @Test public void create() { try { String back = zooKeeper.create(path, '這是一個測試'.getBytes(), Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT); logger.info('添加一條數(shù)據(jù)成功,實際路徑:{}', back); } catch (Exception e) { logger.error('調用create出錯', e); } } /** * 判斷路徑是否存在,不存在時返回null */ @Order(2) @Test public void exists() { try { Stat stat = zooKeeper.exists(path, false); logger.info('路徑為{}的節(jié)點{}存在', path, stat == null ? '不' : ''); } catch (Exception e) { logger.error('調用exists出錯', e); } } /** * 查詢數(shù)據(jù),路徑不存在時會報錯 */ @Order(3) @Test public void find() { try { byte[] bits = zooKeeper.getData(path, false, new Stat()); // 路徑不存在時會報錯 String data = new String(bits); logger.info('路徑{}查詢到數(shù)據(jù):{}', 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); } } /** * 修改數(shù)據(jù),路徑不存在時會報錯,版本號與存儲中不一致時也報錯 */ @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('數(shù)據(jù)修改成功,原版本號:{},新版本號:{}', stat.getAversion(), stat.getVersion()); } } catch (Exception e) { logger.error('調用setData出錯', e); } } /** * 刪除節(jié)點,路徑不存在時報錯,版本號不一致時也會報錯 */ @Order(5) @Test public void delete() { try { zooKeeper.delete(path, -1); // -1表示不做版本校驗 logger.info('根據(jù)path刪除數(shù)據(jù)成功'); } catch (Exception e) { logger.error('調用delete出錯', e); } } @AfterAll public void destory() throws Exception { if (zooKeeper != null) { zooKeeper.close(); } }}

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

標簽: Java
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
午夜一级在线看亚洲| 亚洲专区欧美专区| 日韩av电影一区| 亚洲2区在线| 视频一区日韩精品| 日韩高清电影免费| 欧美一级二区| 欧美一区二区三区免费看| 久久黄色影视| 欧美成人一二区| 国产精品亚洲综合在线观看| 久久不见久久见国语| 水蜜桃精品av一区二区| 成人免费网站www网站高清| 国产在线日韩| 亚洲综合三区| 欧美日韩a区| 国产成人精品一区二区三区免费| 精品欧美一区二区三区在线观看| 国精品一区二区三区| 视频一区中文字幕| 91精品国产自产在线丝袜啪| 久久精品国产精品亚洲毛片| 国产乱码午夜在线视频| 99久久激情| 狠狠色狠狠色综合日日tαg| 蜜桃av一区二区在线观看| 一区三区视频| 亚洲一区不卡| 亚洲黄色中文字幕| 国产亚洲久久| 久久亚洲资源中文字| 国产v日韩v欧美v| 欧美性感美女一区二区| 欧美日韩伊人| 日韩成人综合| 亚洲精品乱码日韩| 久久精品资源| 精品一区三区| 日韩精品久久久久久久软件91| 91九色综合| 日韩免费福利视频| 蜜臀国产一区二区三区在线播放| 国产精品久久久亚洲一区| 国产超碰精品| 日本成人中文字幕| 日韩在线短视频| 亚州国产精品| 免费看av不卡| 日韩美女国产精品| 神马久久午夜| 人人爱人人干婷婷丁香亚洲| 日韩高清中文字幕一区二区| 日韩精品a在线观看91| 伊人久久高清| 亚洲人成亚洲精品| 日韩国产欧美| 日韩二区三区四区| 久久精品官网| 国产精品中文字幕亚洲欧美| 99久久九九| 国产日韩中文在线中文字幕| 亚洲电影在线一区二区三区| 麻豆久久久久久| 日av在线不卡| 欧美日韩视频网站| 久久a爱视频| 一二三区精品| 欧美日韩色图| 久久wwww| 蜜桃av一区二区在线观看| 伊人久久在线| 国产精品久久久久av蜜臀| 日韩一级网站| av综合电影网站| 国产精品入口久久| 伊人久久大香伊蕉在人线观看热v| 9999国产精品| 国产精品videossex久久发布| 久久最新视频| 欧美日韩在线二区| 久久精品午夜| 久久精品999| 综合亚洲色图| 伊人久久亚洲美女图片| 精品欧美视频| 国产日韩欧美在线播放不卡| 丝袜亚洲另类欧美| 亚洲一级网站| 亚洲伦乱视频| 国产精品原创| 久久精品人人| 久久av日韩| 日韩二区在线观看| 日韩精品一级二级 | 福利视频一区| 69堂精品视频在线播放| 欧美日韩日本国产亚洲在线 | 1024精品久久久久久久久| 红杏一区二区三区| 蜜桃久久久久| 国产精品毛片aⅴ一区二区三区| 中文字幕一区二区三区四区久久| 国产一在线精品一区在线观看| 日韩影院二区| 韩国精品主播一区二区在线观看| 日韩综合在线| 国产福利片在线观看| 精品欧美日韩精品| 国产极品模特精品一二| 91成人精品在线| 久久精品99国产精品日本| 日韩精品中文字幕吗一区二区| 蜜桃久久av一区| 亚洲影视一区二区三区| 亚洲尤物在线| 午夜在线精品偷拍| 老司机精品久久| 爽好多水快深点欧美视频| 亚洲精品123区| 不卡在线一区| 亚洲欧美日韩专区| 蜜桃传媒麻豆第一区在线观看| 久热精品在线| 日韩精品免费视频一区二区三区| 亚洲1区在线| 国产日韩一区| 久久免费影院| 欧美少妇精品| 国产精品av一区二区| 精品1区2区3区4区| 亚洲欧洲一区二区天堂久久| 欧美成人综合| 亚洲一级在线| 日精品一区二区三区| **爰片久久毛片| 精品视频自拍| 日韩大片在线播放| 女人天堂亚洲aⅴ在线观看| 在线亚洲一区| 亚洲免费精品| 日韩在线黄色| 欧美国产视频| 欧美三区四区| 亚洲专区欧美专区| 日韩不卡免费视频| 精品视频网站| 久久久久久黄| 亚洲欧美久久久| 亚洲男人在线| 老牛国内精品亚洲成av人片| 92国产精品| 亚洲欧美高清| 国产精品亚洲四区在线观看 | 日本欧美韩国一区三区| 国产精品日韩精品中文字幕| av日韩中文| 国产亚洲精品v| 欧美偷窥清纯综合图区| 国产精品99一区二区三区| 欧美日韩四区| 久久激情av| 久久久久国产精品一区二区| 男女男精品视频网| 麻豆精品在线播放| 欧美 日韩 国产精品免费观看| 色狠狠一区二区三区| 免费日韩一区二区三区| 蜜桃tv一区二区三区| 亚洲精品乱码久久久久久蜜桃麻豆 | 日本精品影院| 亚洲精选成人| 精品国产欧美日韩一区二区三区| 在线一区电影| 国产精品亚洲欧美日韩一区在线 | 婷婷色综合网| 国产一卡不卡| 99精品电影| 久久国产欧美日韩精品| 久久美女精品| 国产日韩欧美一区二区三区| 久久九九99| 欧美精品影院| 欧美日韩国产亚洲一区| 久久wwww| 欧美资源在线| 热三久草你在线| 久久国产麻豆精品| 国产一在线精品一区在线观看| 国产精品亚洲综合在线观看| 亚洲欧美日韩高清在线| 蜜桃久久久久| 亚洲精品少妇| 国产综合色区在线观看| 欧美一区二区三区久久精品| 黑丝美女一区二区| 国产在线观看91一区二区三区| 蜜臀91精品一区二区三区| 欧美日韩视频免费观看| 欧美自拍一区|