單機環境下,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...