Zookeeper集群搭建以及zab協議

2021-10-09 15:19:18 字數 2459 閱讀 2856

單機環境下,jdk zookeeper安裝完畢,基於一台虛擬機器,進行zookeeper的偽集群搭建,zookeeper集群中包含三個節點,節點對外提供服務埠號分別為2181,2182,2183

基於zookeeper-3.4.10複製三份zookeeper安裝好的伺服器檔案,目錄名稱分別為zookeeper2181,zookeeper2182,zookeeper2183

cp -r zookeeper-3.4.10 zookeeper2181

cp -r zookeeper-3.4.10 zookeeper2182

cp -r zookeeper-3.4.10 zookeeper2183

修改zookeeper2181伺服器對應配置檔案.

# the number of milliseconds of each tick

ticktime=2000

# the number of ticks that the initial

# synchronization phase can take

initlimit=10

# the number of ticks that can pass between

# sending a request and getting an acknowledgement

synclimit=5

# the directory where the snapshot is stored.

# do not use /tmp for storage, /tmp here is just

# example sakes.

datadir=/home/zookeeper/zookeeper2181/data

# the port at which the clients will connect

clientport=2181

# 集群配置資訊

# server.a = b:c:d

# a 是乙個數字,表示這個伺服器的編號

# b 是這個伺服器的ip位址

# c zookeeper伺服器之間的通訊埠

# d leader選舉的埠

server.1=192.168.60.130:2287:3387

server.2=192.168.60.130:2288:3388

server.3=192.168.60.130:2289:3389

在上一步datadir指定的目錄下,建立myid檔案,然後在該檔案新增上一步sever配置檔案對應的數字

#zookeeper2181對應的數字為1

# /home/zookeeper/zookeeper2181/data目錄下執行命令

echo "1" > myid

zookeeper2182,zookeeper2183參照步驟2/3進行相應的配置

分別啟動三颱伺服器,檢查集群狀態

登入命令

./zkcli.sh -server 192.168.60.130:2181

./zkcli.sh -server 192.168.60.130:2182

./zkcli.sh -server 192.168.60.130:2183

一致性協議:zab協議

zab協議的全稱是zookeeper atomic broadcast (zookeeper原子廣播) zookeeper是通過zab協議來保證分布式事務的最終一致性

基於zab協議 zookeeper集群中的角色主要右以下三類

角色描述

領導者領導者負責進行投票的發起和決議,更新系統狀態

跟隨著(follower)

follower用於接收客戶端請求並向客戶端返回結果,在選舉過程中參與投票

觀察者(observer)

observer可以接收客戶端連線,將寫請求**給leader節點,但是observer不參與投票過程,只同步leader的狀態,observer的目的是為了擴充套件系統,提高讀取速度

客戶端請求傳送方

zab廣播模式工作原理,通過類似兩階段提交協議的方式來解決資料的一致性;

leader從客戶端接受乙個寫請求

leader生成乙個新的事務並未該事務生成乙個唯一的zxid

leader將這個事務提議(propose)傳送給所有follows節點

follower節點將接收的事務請求加到歷史佇列中,並傳送ack給leader;

當leader接收到大多數follower(半數以上節點)的ack訊息時,leader就會傳送commmit請求

當follower收到commit請求時,從歷史佇列中將事務請求commit;

zookeeper以及集群的搭建

1.zookeeper的搭建不難,難的是對他的理解以及良好的使用.單機版的zookeeper只需要解壓後直接命令 啟動即可 解壓zookeeper,tar zxvf zookeeper 3.4.6.tar.g 2.集群的話,需要複製檔案 把單機版的zookeeper 3.4.6拷貝到 usr loc...

zookeeper集群搭建

接觸zookeeper集群已有很長很長一段時間了,zookeeper在專案中的使用相當的頻繁,如dubb服務 amq集群 大資料領域hadoop等。zookeeper的集群建立非常簡單,一直想寫一篇文章來對集群使用的介紹,但一直沒能抽出空,今天正好閒來無事,就重新實踐一遍來整理記錄,下文是基本的集群...

zookeeper集群搭建

zookeeper環境搭建需要保證奇數臺機器,以保證演算法能選舉出乙個leader。一 環境準備 datadir dir ticktime 2000 initlimit 5 synclimit 2 clientport 2181 server.0 192.168.1.100 2888 3888 se...