概述
zookeeper是一個分布式協同管理工具,用來進行分布式項目的集中管理,常作為服務注冊中心,實作例如配置同步,負載,服務發現等功能。其本身是hadoop生态系統中的一員,但是也常用于java微服務架構中,用于服務發現,負載等,例如dubbo架構等。應用非常廣泛,且有很多應用服務都會利用zookeeper來實作叢集功能等。
這裡就詳細記錄一下zookeeper的安裝與叢集的搭建
正文
1. 下載下傳安裝包
官方下載下傳位址:https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/
# 下載下傳安裝包
wge http://www-us.apache.org/dist/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz
# 解壓
tar –zxvf zookeeper-3.4.6.tar.gz
2. 修改配置檔案
# 将zookeeper移動到opt下,并進入目錄,這隻是我習慣的放軟體的地方,可自定義
# 手動建立data目錄和logs目錄,因為預設是沒有的,需要自己手動建立
mv zookeeper-3.4.6 /opt && cd /opt/zookeeper-3.4.6
mkdir data
mkdir logs
# 複制配置檔案示例,改為zoo.cfg,名稱不能變,預設是加載此檔案
cp conf/zoo_sample.cfg conf/zoo.cfg
# 修改配置檔案,隻修改以下内容,将目錄改為剛才建立的目錄的絕對路徑
vim conf/zoo.cfg
----------------------------------------------------------------------------
dataDir=/opt/zookeeper-3.4.6/data
dataLogDir=/opt/zookeeper-3.4.6/logs
----------------------------------------------------------------------------
3. 啟動服務
/opt/zookeeper-3.4.6/bin/zkServer.sh start
# 檢視狀态
/opt/zookeeper-3.4.6/bin/zkServer.sh status
顯示mode:standalone 為單機模式
ok,到此,zookeeper安裝完成,并以單機模式啟動
4. zookeeper叢集搭建
zookeeper在生産環境中,常是以叢集方式啟動,以實作高可用。叢集搭建非常簡單,隻需要修改一下配置檔案,并逐個啟動各個節點的zookeeper服務就可以自動組建叢集,選舉出leader和follower。
準備:
叢集的選舉和機制所緻,當叢集超過半數的伺服器挂機,則整個叢集不可用,是以叢集的節點數最好為單數,那麼最小的推薦叢集為3節點叢集。這裡就以3節點叢集為例子
3台伺服器,IP分别為:
192.168.0.11
192.168.0.12
192.168.0.13
每台伺服器上下載下傳并安裝好zookeeper,按上面的方法,隻是先不啟動服務
4.1 修改配置檔案
在每個節點上都要執行下面的操作修改配置檔案
# 在上面的配置檔案基礎上,添加如下内容
# data目錄和logs目錄的配置在上面已經配置過了,這裡就不贅述了
$ vim /opt/zookeeper-3.4.6/conf/zoo.cfg
----------------------------------------------------------------------------------
# 格式為 server.id=ip:port1:port2,id為節點ID,port1和port2是用來叢集間通信,選擇用的端口
server.1=192.168.0.11:2888:3888
server.2=192.168.0.12:2888:3888
server.3=192.168.0.13:2888:3888
----------------------------------------------------------------------------------
4.2 建立myid檔案,标明身份
# 在每個節點的data目錄下,建立一個myid檔案,并填入自己的id
# 此id與配置檔案中的server id 對應
# 在 192.168.0.11 上,則執行
echo '1' > /opt/zookeeper-3.4.6/data/myid
# 在 192.168.0.12 上,則執行
echo '2' > /opt/zookeeper-3.4.6/data/myid
# 在 192.168.0.13 上,則執行
echo '3' > /opt/zookeeper-3.4.6/data/myid
4.3 依次啟動每個節點上的zookeeper服務
# 分别進入各個伺服器,啟動服務,啟動順序沒關系
/opt/zookeeper-3.4.6/bin/zkServer.sh start
# 全部啟動後,檢視服務狀态
/opt/zookeeper-3.4.6/bin/zkServer.sh status
啟動後,檢視服務狀态,就會發現,有的節點的mode: leader,有的節點mode:follower。這就是叢集自己選舉出的上司者和跟随者,也就是主從。
結束
OK,到此,zookeeper安裝與叢集搭建完成。有什麼不明白的,歡迎留言交流