1. 程式人生 > >zookeeper 叢集快速搭建

zookeeper 叢集快速搭建

zookeeper穩定版下載地址 : http://apache.fayea.com/zookeeper/

這篇文章使用的是 zookeeper-3.4.12

首先將的伺服器的 ip 地址記錄下來 , 這裡我使用的是 4臺 伺服器 

叢集的角色:  leader 1臺 、follower 2臺、 observer 1臺

leader

leader是zookeeper叢集的核心。

  1. 事務請求的唯一排程者和處理者,保證叢集事務處理的順序性
  2. 叢集內部各個伺服器的排程者

follower

  1. 處理客戶端非事務請求,以及轉發事務請求給leader伺服器
  2. 參與事務請求提議(proposal)的投票(客戶端的一個事務請求,需要半數伺服器投票通過以後才能通知leader commit; leader會發起一個提案,要求follower投票)
  3. 參與leader選舉的投票

observer

觀察zookeeper叢集中最新狀態的變化並將這些狀態同步到observer伺服器上

增加observer不影響叢集中事務處理能力,同時還能提升叢集的非事務處理能力

 

下載 zookeeper 並解壓

進入 zookeeper 目錄 找到 conf 資料夾

進入 conf 資料夾 將 zoo_sample.cfg(官方提供模板檔案) 複製並重命名為 zoo.cfg

修改zoo.cfg

在最下面 將 4臺伺服器的ip地址 以 server.id=ip:port:port 的格式書寫

server.1=伺服器ip:2888:3181   

2888 表示follower節點與leader節點交換資訊的埠號

3181 如果leader節點掛掉了, 需要一個埠來重新選舉

如果增加 observer 需要書寫成 server.id=ip:port:port:observer

並在 zoo.cfg 中增加配置 peerType=observer 這裡將第4臺伺服器 作為 observer

zoo.cfg配置檔案分析

tickTime=2000  zookeeper中最小的時間單位長度 (ms)

initLimit=10  follower節點啟動後與leader節點完成資料同步的時間

syncLimit=5 leader節點和follower節點進行心跳檢測的最大延時時間

dataDir=/tmp/zookeeper  表示zookeeper伺服器儲存快照檔案的目錄

dataLogDir 表示配置 zookeeper事務日誌的儲存路徑,預設指定在dataDir目錄下

clientPort 表示客戶端和服務端建立連線的埠號: 2181

 

接下來 使用 xftp (別的也可) 將修改好的 zookeeper 分別上傳到 4臺伺服器

zoo.cfg中有一個dataDir = /tmp/zookeeper

進入 $dataDir 所在的目錄 新建檔案 名為 myid 內容為 這臺伺服器的id

分別為4臺伺服器分配id 1,2,3,4

cd /tmp/zookeeper

vim myid

內容為 1/2/3/4 (id範圍1~255) 不可重複

編輯好id 之後儲存並退出 

因為 id=4 的伺服器 為 observer 伺服器

所以我們需要在 id=4 的伺服器的 zookeeper存放目錄/zookeeper/conf/zoo.cfg 配置檔案中 加入配置 peerType=observer

這樣叢集的配置就完成了

 

接下來我們來啟動叢集

進入 zookeeper 目錄下的 bin 資料夾

如果檔案沒有變成 綠色高亮 代表未授權

可使用 chmod +x *.sh 命令進行授權

使用 sh zkServer.sh start 命令啟動zookeeper

使用 tail -f zookeeper.out 檢視日誌輸出

將4臺伺服器全部啟動 並檢視日誌 如沒有報錯 說明叢集啟動成功

 

然後 我們使用 sh zkServer status 命令檢視zookeeper 的執行狀態與所分配的角色 是否與我們所要配置的一致

myid=1 的 角色為 follower

myid=2 的 角色為 follower

myid=3 的 角色為 leader

 

myid=4 的 角色為 observer

與我們所要配置的一致 , 叢集搭建成功

如想使用java 操作 zookeeper 請參考我的另一片文章 https://blog.csdn.net/weixin_40461281/article/details/85337190