溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Zookeeper分布式集群

發(fā)布時(shí)間:2020-07-03 20:10:08 來源:網(wǎng)絡(luò) 閱讀:1569 作者:蔣將將 欄目:建站服務(wù)器

一、簡(jiǎn)介

     Zookeeper是一個(gè)高效的分布式協(xié)調(diào)服務(wù),可以提供配置信息管理、命名、分布式同步、集群管理、數(shù)據(jù)庫切換等服務(wù)。它不適合用來存儲(chǔ)大量信息,可以用來存儲(chǔ)一些配置、發(fā)布與訂閱等少量信息。Hadoop、Storm、消息中間件、RPC服務(wù)框架、分布式數(shù)據(jù)庫同步系統(tǒng),這些都是Zookeeper的應(yīng)用場(chǎng)景。

    Zookeeper集群中節(jié)點(diǎn)個(gè)數(shù)一般為奇數(shù)個(gè)(>=3),若集群中Master掛掉,剩余節(jié)點(diǎn)個(gè)數(shù)在半數(shù)以上時(shí),就可以推舉新的主節(jié)點(diǎn),繼續(xù)對(duì)外提供服務(wù)。

1、典型應(yīng)?用場(chǎng)景

1)分布式通知/協(xié)調(diào)

?用于分布式系統(tǒng)的任務(wù)分發(fā)與任務(wù)執(zhí)?行結(jié)果反饋

2) 集群管理

– 可以監(jiān)控節(jié)點(diǎn)的存活狀態(tài)

3)Master選舉

Master/slave結(jié)構(gòu)的系統(tǒng)中,避免單點(diǎn)故障,需要多個(gè)master,其中

只有?一個(gè)active master,ZooKeeper幫助選擇active master

4) 分布式鎖

– 獨(dú)占:某?一時(shí)刻只有?一個(gè)client能夠獲得

– 控制時(shí)序:多個(gè)客戶端的某些過程按照順序執(zhí)?行

5) 分布式隊(duì)列

https://blog.csdn.net/king866/article/details/53992653/

2、架構(gòu)

Zookeeper分布式集群Zookeeper分布式集群

2.1、節(jié)點(diǎn)

– 2N+1個(gè)server組成,N+1個(gè)節(jié)點(diǎn)可?用時(shí),整個(gè)系統(tǒng)保持可?用

2.2、server?角?色類型

– Server:存放數(shù)據(jù)(in-memory)

– Leader:不接受client的請(qǐng)求,負(fù)責(zé)進(jìn)?行投票的發(fā)起和決議,最終更新狀態(tài) – Follower:接收客戶請(qǐng)求并返回客戶結(jié)果,參與Leader發(fā)起的投票

3、ObServer節(jié)點(diǎn)

問題

當(dāng)client變多,ZK集群變?大時(shí),節(jié)點(diǎn)都為follower時(shí),更新成 本較?大

? 解決方案

ObServer節(jié)點(diǎn):和client交互,存有數(shù)據(jù)的副本,不參與投票

4、角色

Zookeeper分布式集群Zookeeper分布式集群

5、ZooKeeper承諾

5.1、順序性

client的update請(qǐng)求都會(huì)根據(jù)他發(fā)出的順序被順序的處理

5.2、原子性

一個(gè)update操作要么成功要么失敗,沒有其他可能的結(jié)果

5.3、強(qiáng)一致性

client無論連接到那個(gè)server,展?示給它的都是同?一個(gè)視圖

5.4、 可靠性

update一旦成功,就被持久化了,除?非另?一個(gè)update請(qǐng)求更 新了當(dāng)前值

5.5、實(shí)時(shí)性

對(duì)于每?一個(gè)client,它的系統(tǒng)視圖都是最新的

二、準(zhǔn)備工作

1、系統(tǒng)環(huán)境

主機(jī)名

系統(tǒng)

服務(wù)版本

IP

master

CentOS7.4

3.4.12

192.168.56.129

slave1

CentOS7.4

3.4.12

192.168.56.130

slave2

CentOS7.4

3.4.12

192.168.56.131

2、暫時(shí)關(guān)閉防火墻和selinux

3、軟件下載

下載地址:http://mirrors.hust.edu.cn/apache/zookeeper/

Zookeeper分布式集群

4、Java環(huán)境

Zookeeper分布式集群Zookeeper分布式集群

三、服務(wù)搭建

1、解壓三個(gè)節(jié)點(diǎn)的文件

[root@master ~]# cd /home/

[root@master home]# tar -zxvf zookeeper-3.4.12.tar.gz

[root@master home]# ln -s zookeeper-3.4.12 zookeeper

備注:三個(gè)節(jié)點(diǎn)相同操作

2、在conf目錄下創(chuàng)建zoo.cfg文件,三個(gè)節(jié)點(diǎn)配置相同,如下

[root@master ~]# cd /home/zookeeper/conf/

[root@master conf]# cp zoo_sample.cfg zoo.cfg

[root@master conf]# vim zoo.cfg

tickTime=2000

initLimit=10

syncLimit=5

dataDir=/var/lib/zookeeper

clientPort=2181

maxClientCnxns=50

server.1=192.168.56.129:2888:3888

server.2=192.168.56.130:2888:3888

server.3=192.168.56.131:2888:3888

3、創(chuàng)建文件/var/lib/zookeeper/myid,3個(gè)節(jié)點(diǎn)的 內(nèi)容分別為1、2、3

[root@master conf]# mkdir -p /var/lib/zookeeper

[root@master conf]# cd /var/lib/zookeeper/

[root@master zookeeper]# vim myid

Zookeeper分布式集群Zookeeper分布式集群

4、啟動(dòng)三個(gè)節(jié)點(diǎn)

[root@master zookeeper]# bin/zkServer.sh start

Zookeeper分布式集群Zookeeper分布式集群

[root@master zookeeper]# jps

Zookeeper分布式集群Zookeeper分布式集群

[root@master zookeeper]# bin/zkServer.sh status

Zookeeper分布式集群Zookeeper分布式集群

5、測(cè)試

5.1、在zookeeper中任意一個(gè)節(jié)點(diǎn),執(zhí)行指令zkCli.sh

[root@master zookeeper]# ./bin/zkCli.sh

Zookeeper分布式集群Zookeeper分布式集群

5.2、輸入:help    #幫助信息

Zookeeper分布式集群Zookeeper分布式集群

ls  /   查找根目錄

create /test abc   創(chuàng)建節(jié)點(diǎn)并賦值

get /test   獲取指定節(jié)點(diǎn)的值

set /test cb  設(shè)置已存在節(jié)點(diǎn)的值

rmr /test  遞歸刪除節(jié)點(diǎn)

delete /test/test01  刪除不存在子節(jié)點(diǎn)的節(jié)點(diǎn)

5.3、相關(guān)操作命令

新建操作

Zookeeper分布式集群Zookeeper分布式集群

刪除操作

Zookeeper分布式集群Zookeeper分布式集群

5.4、查看工具

在Eclipse中查看Zookeeper集群節(jié)點(diǎn)

也可以使用ZooInspector查看

這里使用ZooInspector工具進(jìn)行查看

下載地址:https://issues.apache.org/jira/secure/attachment/12436620/ZooInspector.zip

解壓,進(jìn)入目錄ZooInspector\build,雙擊運(yùn)行zookeeper-dev-ZooInspector.jar;

備注:前提是Windows環(huán)境安裝了Java

Zookeeper分布式集群Zookeeper分布式集群

4.5、點(diǎn)擊左上角連接按鈕,輸入zk服務(wù)地址:ip:2181

Zookeeper分布式集群Zookeeper分布式集群

點(diǎn)擊OK,即可查看ZK節(jié)點(diǎn)信息

Zookeeper分布式集群Zookeeper分布式集群

6、異常

   6.1、CONNECTION_LOSS(連接丟失)

        – eg:連接的server down掉

  6.2、 SESSION_EXPIRED(會(huì)話失效)

   – 由ZooKeeper集群管理,?非client管理

   – ZooKeeper清除和該session有關(guān)的信息 – 正常運(yùn)?行的ZK不會(huì)出現(xiàn)這種情況


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI