ZooKeeper入门(五)配置集群和选举机制
一. 配置集群
1. 準備多臺ZooKeeper服務器? ?
2. 配置ZooKeeper服務器
在每臺服務器的conf/zoo.cfg文件中添加如下內容:
server.20=192.168.4.20:2888:3888
server.21=192.168.4.21:2888:3888
server.22=192.168.4.22:2888:3888
格式: server.A=B:C:D
A表示這臺服務器的編號ID,是一個數字
B表示服務器的IP地址或域名
C表示這臺服務器與集群中的Leader交換信息時使用的端口
D表示執行選舉Leader服務器時互相通信的端口
3. 創建myid配置文件
在集群環境下,需要在dataDir 目錄中創建一個名為myid 的文件,文件內容是當前服務器的編號
ID,即上面配置的A
cd data
echo A的值 > myid
ZooKeeper啟動時會讀取這個文件,將里面的數字與zoo.cfg中配置的server.A進行比較,從而判斷這臺服務器是哪個
4.開啟zookeeper
開啟3臺虛擬機的zookeeper程序
/usr/local/zookeeper/bin/zkServer.sh start
開啟成功后查看zookeeper集群的狀態
/usr/local/zookeeper/bin/zkServer.sh status
出現Mode:follower或是Mode:leader則代表成功
二:集群特性
- 一個ZooKeeper集群中,有一個領導者Leader和多個跟隨者Follower
- Leader負責進行投票的發起和決議,更新系統狀態
- Follower用于接收客戶端的請求并向客戶端返回結果,在選舉Leader過程中參與投票
- 半數機制:可用節點數量>總節點數量/2
- 全局數據一致:集群中每臺服務器保存一份相同的數據副本,不論客戶端連接到哪個服務器,數據都是
一致的 - 更新請求順序執行:來自同一個客戶端的更新請求,按其發送順序依次執行
- 數據更新的原子性:一次數據更新,要么成功,要么失敗
- 實時性:在一定的時間范圍內,客戶端能讀取到最新數據
?
三:選舉機制
?
ZooKeeper在提供服務時會自動選舉一個節點服務器作為Leader,其他都是Follower
選舉流程:
總結:
?
- 每個服務器在啟動時都會選擇自己,然后將投票信息發送出去
- 服務器編號ID越大,在選擇算法中的權重越大
- 投票數必須過半,才能選出Leader
- 誰是Leader:啟動順序的前集群數/2+1 個服務器中,id值最大的會成為Leader?
總結
以上是生活随笔為你收集整理的ZooKeeper入门(五)配置集群和选举机制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 快手极速版能赚钱吗(上的快手极速版)
- 下一篇: 王者营地怎么搜索别人的游戏名字 王者荣耀