版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、分布式 Zookeeper 快速入門Zookeeper文檔上這么解釋 zookeeper,它是一個分布式服務(wù)框架,是 Apache Hadoop 的一個子項目,它主要是用來解決分布式應(yīng)用中經(jīng)常遇到的一些數(shù)據(jù)管理問題,如:命名服務(wù)、狀態(tài)同步服務(wù)、集群管理、分布式應(yīng)用配置項的管理等。上面的解釋有點抽象,簡單來說 zookeeper=文件系統(tǒng)+通知機制。Zookeeper 應(yīng)用場景.5.中心(Dubbo+Zookeeper)分布式配置中心(存放配置文件)分布式鎖 分布式隊列分布式文件系統(tǒng)Zookeeper 單機版本Linux 環(huán)境安裝 Zookeeper1.解壓 zk 壓縮包tar -
2、zxvf zookeeper-3.4.14.tar.gz2. 進(jìn)入到 zk 目錄cd zookeeper-3.4.143.在 zk 目錄中創(chuàng)建 data 和 logs 文件夾mkdir data mkdir logs4.進(jìn)入到 conf 目錄,修改文件名稱mv zoo_svi zoo.cfgle.cfg zoo.cfgdataDir =/usr/local/zookeeper-3.4.14/datadataLogDir=/usr/local/zookeeper-3.4.14/logs 5.啟動 zk./zkServer.sh start./zkServer.sh sus單機啟動成功注意:在安裝
3、 Zk 的時候提前安裝好jdk 環(huán)境 建議java8 以上Zookeeper 相關(guān)特性1、高效適用于大型的分布式系統(tǒng). 如果寫多的話性能不高,因為它要做所有節(jié)點之間的數(shù)據(jù)同步。2、可靠支持集群,大部分可用即服務(wù)可用3、順序所有寫請求由 leader 生成遞增 zxid,寫操作時,采用 mvcc 樂觀鎖機制進(jìn)行寫,保證所有寫操作順序。4、簡潔對外提供的 api 非常實用、簡潔。僅僅 7 個 api create - 在樹形結(jié)構(gòu)的位置中創(chuàng)建節(jié)點delete - 刪除一個節(jié)點exists - 測試節(jié)點在指定位置上是否存在get data - 從節(jié)點上數(shù)據(jù)set data - 往節(jié)點寫入輸入get c
4、hilren - 檢索一個節(jié)點的子節(jié)點列表sync - 等待傳輸數(shù)據(jù)Zookeeper 數(shù)據(jù)模型臨時節(jié)點臨時順序節(jié)點持久節(jié)點持久順序節(jié)點Java 語言操作 ZKACL 權(quán)限控制ACL 權(quán)限模型,實際上就是對樹每個節(jié)點實現(xiàn)控制的認(rèn)證有 4 種方式:world:默認(rèn)方式,相當(dāng)于全世界都能auth:代表已經(jīng)認(rèn)證通過的用戶(cli 中可以通過 addauthdigest uswd 來添加當(dāng)前上下文中的用戶)digest:即用戶名:這種方式認(rèn)證,這也是業(yè)務(wù)系統(tǒng)中最常用的ip:使用 Ip 地址認(rèn)證1.給節(jié)點設(shè)置權(quán)限/ 1.創(chuàng)建 zooKeeper 連接ZooKeeper zooKeeper = new Z
5、ooKeeper(35, 500, new Watcher() public void pros(WatchedEvent watchedEvent) / 1.創(chuàng)建 zooKeeper 連接ZooKeeper zooKeeper = new ZooKeeper(35, 500, new Watcher() public void pros(WatchedEvent watchedEvent) System.out.prln(watchedEvent.getSe().name(););/ 2.創(chuàng)建臨時節(jié)點String s1 = zooKeepe
6、r.create(/mayikt, mayikt.getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL);System.out.prln(s1: + s1);/ 3.創(chuàng)建持久節(jié)點String s2 = zooKeeper.create(/mayikt, mayikt.getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);System.out.prln(s2: + s2);/ 4.創(chuàng)建持久節(jié)點帶順序String s3 = zooKeeper.create
7、(/mayikt, mayikt.getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE,CreateMode.PERSISTENT_SEQUENTIAL);System.out.prln(s3: + s3);/ 5.創(chuàng)建臨時節(jié)點帶順序String s4 = zooKeeper.create(/mayikt, mayikt.getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE,CreateMode.EPHEMERAL_SEQUENTIAL);System.out.prln(s4: + s4);2.查詢該節(jié)點必須賬號實現(xiàn)服務(wù)與發(fā)現(xiàn)/ 1.創(chuàng)建 z
8、ooKeeper 連接ZooKeeper zooKeeper = new ZooKeeper(35, 500, new Watcher() public void pros(WatchedEvent watchedEvent) System.out.prln(watchedEvent.getSe().name(););/ 2.設(shè)置 zk 連接賬號zooKeeper.addAuthInfo(digest, guest:guest123.getBytes();byte bytes = zooKeeper.getData(/mayikt_6440, null, new S(
9、);String string = new String(bytes);System.out.prln(string);System.out.prln(watchedEvent.getSe().name(););/ 2.創(chuàng)建賬號權(quán)限 admin 可以實現(xiàn)讀寫操作Id id1 = new Id(digest, DigestAuthenticationProvider.generateDigest(admin:admin123);ACL acl1 = new ACL(ZooDefs.Perms.ALL, id1);/ 3.創(chuàng)建權(quán)限 guest 只允許做讀操作Id id2 = new Id(dige
10、st, DigestAuthenticationProvider.generateDigest(guest:guest123);ACL acl2 = new ACL(ZooDefs.Perms.READ, id2);/ 4.添加該賬號ArrayList a= new ArrayList();a.add(acl1);a.add(acl2);/ 5.創(chuàng)建該節(jié)點String s1 = zooKeeper.create(/memberservice, mayikt.getBytes(), a, CreateMode.PERSISTENT);System.out.prln(s1: + s1);服務(wù)端St
11、ring data = : + servort;zooKeeper.create(parentPath + / + servort, data.getBytes(),ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL);Componentpublic class ApplicationRunnerImpl implements ApplicationRunner Value($servort)private String servort;Overridepublic void run(ApplicationArguments args) thro
12、ws Exception start();public void start() throws IOException, KeeperException,erruptedException ZooKeeper zooKeeper = new ZooKeeper(35, 50000, new Watcher() Overridepublic void pros(WatchedEvent watchedEvent) System.out.prln(watchedEvent.getSe().name(););String parentPath = /mayikt;Sexis
13、ts = zooKeeper.exists(parentPath, new Watcher() Overridepublic void pros(WatchedEvent event) );/ 如果當(dāng)前父節(jié)點不存在的情況 就創(chuàng)建if (exists = null) zooKeeper.create(parentPath, mayikt.getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE,CreateMode.PERSISTENT);/ 將當(dāng)前服務(wù)信息到 zk 上客戶端獲取Zookeeper 事件通知Zookeeper Watcher 事件通知 當(dāng)節(jié)點發(fā)生變化的時候
14、修改、刪除、新增 都會到通知;相關(guān)命令service keepalived startservice keepalived stopprivate sic final CountDownLatch countDownLatch = new CountDownLatch(1);public sic void main(String args) throws IOException,erruptedException, KeeperExceptionZooKeeper zooKeeper = new ZooKeeper(35, 50000, new Watcher() O
15、verridepublic void pros(WatchedEvent watchedEvent) Event.KeeperSe se = watchedEvent.getSe();/ 如果當(dāng)前連接成功,則開始放心if (se = Event.KeeperSe.SyncConnected) System.out.prln(zk 連接成功);countDownLatch.countDown(););countDownLatch.await();String path = /mayikt;/ 獲取該節(jié)點下子集List children = zooKeeper.getChildren(path,
16、null, new S();for (i = 0; i children.size(); i+) String pathChildren = path + / + children.get(i);byte data = zooKeeper.getData(pathChildren, null, new S();System.out.prln(服務(wù)接口地址: + new String(data);systemctl stop firewalldZookeeper簡稱 zk 分布式領(lǐng)域中遇到Zookeeper 應(yīng)用場景1.分布式鎖(redis 或者 zk)分布式領(lǐng)域中協(xié)調(diào)者2.Dubbo 服務(wù)(zk)分布式配置中心 disconfig分布式消息中
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年魯教五四新版八年級地理上冊階段測試試卷
- 2025年蘇教新版選修3地理上冊階段測試試卷含答案
- 2025年粵人版九年級生物上冊月考試卷含答案
- 二零二五年度衛(wèi)生間清潔劑研發(fā)與供應(yīng)合同3篇
- 二零二五年度2025版文化創(chuàng)意產(chǎn)業(yè)融資合同范本4篇
- 2025年度環(huán)保工程派遣人員勞務(wù)合同范本4篇
- 擔(dān)保合同約定條款協(xié)議書(2篇)
- 2025年度摩托車租賃平臺合作合同范本3篇
- 2025年度牧草種植基地環(huán)境保護合同范本3篇
- 二零二五版苗木種植基地林業(yè)病蟲害防治合同2篇
- GB/T 16895.3-2024低壓電氣裝置第5-54部分:電氣設(shè)備的選擇和安裝接地配置和保護導(dǎo)體
- 計劃合同部部長述職報告范文
- 人教版高一地理必修一期末試卷
- GJB9001C質(zhì)量管理體系要求-培訓(xùn)專題培訓(xùn)課件
- 二手車車主寄售協(xié)議書范文范本
- 窗簾采購?fù)稑?biāo)方案(技術(shù)方案)
- 五年級上冊小數(shù)除法豎式計算練習(xí)300題及答案
- 語言規(guī)劃講義
- 生活用房設(shè)施施工方案模板
- 上海市楊浦區(qū)2022屆初三中考二模英語試卷+答案
- GB/T 9755-2001合成樹脂乳液外墻涂料
評論
0/150
提交評論