最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Zookeeper高級(jí)教程 | 袁庭新老師帶你快速搭建Zookeeper集群項(xiàng)目實(shí)戰(zhàn)

2023-11-01 11:51 作者:袁庭新  | 我要投稿

Zookeeper是一個(gè)開(kāi)源的分布式應(yīng)用程序協(xié)調(diào)服務(wù),它可以提供高可用性、可靠性和數(shù)據(jù)一致性。在分布式系統(tǒng)中,Zookeeper常被用作協(xié)調(diào)服務(wù)來(lái)管理集群節(jié)點(diǎn)之間的狀態(tài),配置信息,以及各種元數(shù)據(jù)信息。

為了搭建一個(gè)高可用的程序,我們需要對(duì)Zookeeper進(jìn)行集群操作。這樣當(dāng)單個(gè)Zookeeper節(jié)點(diǎn)出現(xiàn)故障或宕機(jī)時(shí),集群中的其他節(jié)點(diǎn)可以接替其職責(zé)并繼續(xù)提供服務(wù)。這對(duì)于一些需要24/7不間斷運(yùn)行的服務(wù)非常重要,例如金融交易所、在線游戲等。下面就請(qǐng)大家跟著袁老師的節(jié)奏,來(lái)完成一個(gè)Zookeeper集群環(huán)境的搭建吧。

01?Zookeeper集群環(huán)境搭建

1.1?產(chǎn)品特點(diǎn)分布式安裝部署

Zookeeper集群思路:先配置一臺(tái)Zookeeper服務(wù)器,再克隆出兩臺(tái),最終形成Zookeeper集群。分布式環(huán)境搭建之前,需要先安裝Zookeeper。Zookeeper的安裝請(qǐng)參考袁老師往期所發(fā)送的文章。

1.2?產(chǎn)品特點(diǎn)配置服務(wù)器編號(hào)

在/opt/zookeeper/zkData目錄下新建myid文件。

在文件中添加與server對(duì)應(yīng)的編號(hào):1;其余兩臺(tái)服務(wù)器將來(lái)分別配置為2和3。

1.3?產(chǎn)品特點(diǎn)配置zoo.cfg文件

打開(kāi)conf目錄下的zoo.cfg文件,增加如下配置。

配置參數(shù)解讀server.A=B:C:D。

1.4 產(chǎn)品特點(diǎn)配置其余兩臺(tái)服務(wù)器

在虛擬機(jī)數(shù)據(jù)目錄vms下(vms存放虛擬機(jī)的目錄),創(chuàng)建zk02文件夾。

進(jìn)入zk02系統(tǒng)后,修改Linux中的IP的配置。使用root用戶打開(kāi)/etc/sysconfig/network-scripts/ifcfg-eno160文件(文件名不一定是這個(gè)),添加內(nèi)容如下:

配置文件生效,使用命令使得配置文件生效:

修改zko2系統(tǒng)的/opt/zookeeper/zkData/myid中的數(shù)值為2。

第三臺(tái)服務(wù)器zk03,重復(fù)上面的步驟。將zk03系統(tǒng)的IP設(shè)置為192.168.230.133,并修改myid文件中的數(shù)值為3。? ??

1.5?產(chǎn)品特點(diǎn)集群操作

關(guān)閉每臺(tái)Zookeeper服務(wù)器的防火墻。

關(guān)于防火墻的操作常見(jiàn)命令見(jiàn)下:

systemctl stop firewalld.service:停止firewall,只是臨時(shí)關(guān)閉了防火墻,當(dāng)重啟操作系統(tǒng)后,防火墻服務(wù)還是會(huì)再次啟動(dòng)

systemctl disable firewalld:禁止firewall開(kāi)機(jī)啟動(dòng)(禁用防火墻服務(wù))。

查看防火墻狀態(tài)。

啟動(dòng)第1臺(tái)Zookeeper服務(wù)器。

查看Zookeeper狀態(tài)。

注意:因?yàn)闆](méi)有超過(guò)半數(shù)以上的服務(wù)器被啟動(dòng),所以第一臺(tái)服務(wù)器啟動(dòng)后查看服務(wù)狀態(tài),發(fā)現(xiàn)集群失敗 ?(如果防火墻沒(méi)有關(guān)閉,也會(huì)導(dǎo)致集群失敗)。

使用同樣的方式啟動(dòng)第2臺(tái)和第3臺(tái)Zookeeper服務(wù)器。

查看第1臺(tái)的狀態(tài):Mode: follower

查看第2臺(tái)的狀態(tài):Mode: leader

查看第3臺(tái)的狀態(tài):Mode: follower

02?ZK客戶端命令行操作

2.1?產(chǎn)品特點(diǎn)客戶端命令

啟動(dòng)客戶端。

顯示所有操作命令。

查看當(dāng)前ZNode中所包含的內(nèi)容。

查看當(dāng)前節(jié)點(diǎn)詳細(xì)數(shù)據(jù)。

當(dāng)前節(jié)點(diǎn)參數(shù)的介紹見(jiàn)下:

2.2?點(diǎn)節(jié)點(diǎn)操作

在根目錄下,創(chuàng)建中國(guó)和美國(guó)兩個(gè)節(jié)點(diǎn)。

在根目錄下,創(chuàng)建俄羅斯節(jié)點(diǎn),并保存“普京”數(shù)據(jù)到節(jié)點(diǎn)上。

獲得節(jié)點(diǎn)的值。

多級(jí)創(chuàng)建節(jié)點(diǎn)。在日本節(jié)點(diǎn)下,創(chuàng)建東京節(jié)點(diǎn)并保存數(shù)據(jù)“熱”。jp必須提前創(chuàng)建好,否則將報(bào)錯(cuò)“節(jié)點(diǎn)不存在”。

創(chuàng)建短暫節(jié)點(diǎn)。短暫節(jié)點(diǎn)創(chuàng)建成功后, 使用quit命令退出客戶端,然后再重新連接到客戶端,發(fā)現(xiàn)短暫節(jié)點(diǎn)自動(dòng)消失。

創(chuàng)建帶序號(hào)的節(jié)點(diǎn)。

  • 在中國(guó)cn下,創(chuàng)建3個(gè)city順序編號(hào)的節(jié)點(diǎn)。

  • 如果原來(lái)沒(méi)有序號(hào)節(jié)點(diǎn),序號(hào)從0開(kāi)始遞增。

  • 如果原節(jié)點(diǎn)下已有2個(gè)節(jié)點(diǎn),則再排序時(shí)從2開(kāi)始,以此類(lèi)推。

修改節(jié)點(diǎn)數(shù)據(jù)值。

2.3?節(jié)點(diǎn)監(jiān)聽(tīng)

監(jiān)聽(tīng)節(jié)點(diǎn)的值變化或子節(jié)點(diǎn)變化(路徑變化)。

1.在server3主機(jī)上注冊(cè)監(jiān)聽(tīng)/us節(jié)點(diǎn)的數(shù)據(jù)變化。

2.在Server1主機(jī)上修改/us的數(shù)據(jù)。

3.Server3會(huì)立刻響應(yīng)。

4.如果在Server1的/us下面創(chuàng)建子節(jié)點(diǎn)NewYork。

5.Server3會(huì)立刻響應(yīng)。

2.4?刪除節(jié)點(diǎn)

1.刪除節(jié)點(diǎn)。

2.遞歸刪除節(jié)點(diǎn)(非空節(jié)點(diǎn),節(jié)點(diǎn)下有子節(jié)點(diǎn))。

說(shuō)明:不僅刪除/cn,而且/cn下的所有子節(jié)點(diǎn)也隨之刪除。

03?Zookeeper集群實(shí)戰(zhàn)

3.1?項(xiàng)目環(huán)境搭建

1.使用IDEA創(chuàng)建一個(gè)項(xiàng)目名稱為【test_zookeeper】的Maven工程。

2.在項(xiàng)目的pom.xml文件中添加依賴。

3.在resources下創(chuàng)建log4j.properties。

3.2?創(chuàng)建Zookeeper客戶端

在項(xiàng)目的src/test/java目錄下創(chuàng)建com.cy.test包,并在該包下創(chuàng)建ZooKeeperTests測(cè)試類(lèi)。

3.3?創(chuàng)建節(jié)點(diǎn)

3.3.1 ACL對(duì)象介紹

一個(gè)ACL對(duì)象就是一個(gè)Id和permission對(duì)。

1.表示哪個(gè)/哪些范圍的Id(Who)在通過(guò)了怎樣的鑒權(quán)(How)之后,就允許進(jìn)行那些操作(What)。即Who How What。

2.permission(What)就是一個(gè)int表示的位碼,每一位代表一個(gè)對(duì)應(yīng)操作的允許狀態(tài)。

3.類(lèi)似Linux的文件權(quán)限,不同的是共有5種操作:CREATE、READ、WRITE、DELETE、ADMIN(對(duì)應(yīng)更改ACL的權(quán)限)。

對(duì)于ACL的參數(shù)詳細(xì)介紹見(jiàn)下表:

3.3.2 創(chuàng)建節(jié)點(diǎn)實(shí)現(xiàn)

在ZooKeeperTests測(cè)試類(lèi)中添加創(chuàng)建節(jié)點(diǎn)的createNode()方法。

運(yùn)行createNode()方法將看到如下的日志輸入。

3.3.3 Session超時(shí)異常

如果createNode()方法在運(yùn)行的時(shí)候出現(xiàn)異常,拋出ClientCnxn$SessionTimeoutException類(lèi)型錯(cuò)誤。

針對(duì)Session超時(shí)異常問(wèn)題,解決方案見(jiàn)下:

  • 增加連接時(shí)間

  • 檢查集群IP是否編寫(xiě)正確

  • 關(guān)閉防火墻:systemctl stop firewalld

3.4?查詢節(jié)點(diǎn)的值

在ZooKeeperTests測(cè)試類(lèi)中添加查詢節(jié)點(diǎn)的值find()方法。

3.5?ZK節(jié)點(diǎn)增刪改查操作

1.更新節(jié)點(diǎn)操作。在ZooKeeperTests測(cè)試類(lèi)中添加更新節(jié)點(diǎn)的值update()方法。

2.刪除節(jié)點(diǎn)。在ZooKeeperTests測(cè)試類(lèi)中添加刪除節(jié)點(diǎn)的delete()方法。

3.獲取子節(jié)點(diǎn)。在ZooKeeperTests測(cè)試類(lèi)中添加獲取子節(jié)點(diǎn)的getChildNodes()方法。

4.監(jiān)聽(tīng)子節(jié)點(diǎn)的變化。在ZooKeeperTests測(cè)試類(lèi)中添加監(jiān)聽(tīng)子節(jié)點(diǎn)變化的listenChildNodes()方法。

運(yùn)行l(wèi)istenChildNodes()方法后,程序在運(yùn)行的過(guò)程中,去zk01節(jié)點(diǎn)的Zookeeper的根目錄下,創(chuàng)建"/yuanxin"子節(jié)點(diǎn)。

一旦監(jiān)聽(tīng)到子節(jié)點(diǎn)的變化,在IDEA控制臺(tái)將打印process()方法的內(nèi)容。

5.判斷Znode是否存在。在ZooKeeperTests測(cè)試類(lèi)中添加判斷子節(jié)點(diǎn)是否存在的exist()方法。

04?回顧總結(jié)

今天袁老師主要是帶大家搭建了Zookeeper集群開(kāi)發(fā)環(huán)境,以及集群環(huán)境下命令行的相關(guān)操作。然后我們又學(xué)習(xí)了Zookeeper的常用API,主要學(xué)習(xí)了通過(guò)API來(lái)創(chuàng)建節(jié)點(diǎn)、查詢節(jié)點(diǎn)、修改節(jié)點(diǎn)、刪除節(jié)點(diǎn)、獲取子節(jié)點(diǎn)、監(jiān)聽(tīng)子節(jié)點(diǎn)等相關(guān)的內(nèi)容。

今天的內(nèi)容就給大家介紹到這里了,現(xiàn)在你學(xué)會(huì)了嗎?關(guān)注「袁庭新」,干貨天天都不斷!



Zookeeper高級(jí)教程 | 袁庭新老師帶你快速搭建Zookeeper集群項(xiàng)目實(shí)戰(zhàn)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
蓬莱市| 福贡县| 防城港市| 浙江省| 景德镇市| 河西区| 泗阳县| 上栗县| 方正县| 香格里拉县| 邵东县| 卢氏县| 藁城市| 武功县| 余江县| 昌江| 南宁市| 泽州县| 永安市| 麟游县| 康保县| 蛟河市| 桦川县| 周口市| 白河县| 西乌珠穆沁旗| 资兴市| 大埔县| 横山县| 汾西县| 清远市| 凤台县| 小金县| 克山县| 张北县| 伊春市| 肇源县| 苏尼特右旗| 垦利县| 施秉县| 常熟市|