溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Zookeeper 集群

發布時間:2020-06-27 22:01:20 來源:網絡 閱讀:552 作者:司徒曉宇 欄目:建站服務器

Zookeeper介紹

ZooKeeper是一種集中式服務,用于維護配置信息,命名,提供分布式同步和組服務。所有這些類型的服務都以分布式應用程序的形式使用。它具有可靠的、可擴展的、分布式的、可配置的協調機制來統一系統的狀態 。

服務器規劃

Zookeeper 集群

zookeeper集群中至少需要3臺服務器,由于資源有限,我們就以3臺服務器為例。

Zookeeper部署模式

Zookeeper安裝方式有三種,單機模式和集群模式以及偽集群模式。
   單機模式:Zookeeper只運行在一臺服務器上,適合測試環境;
   偽集群模式:就是在一臺物理機上運行多個 Zookeeper 實例;
   集群模式:Zookeeper運行于一個集群上,適合生產環境,這個計算機集群被稱為一個“集合體”(ensemble)。

Zookeeper配置文件

官方給出的配置文件模板為 zoo_sample.cfg ,我們在實際環境中使用時,需要將其改為 zoo.cfg 。在192.168.2.177上操作

[root@rocketmq-nameserver1 conf]# vim zoo.cfg
tickTime=2000initLimit=10syncLimit=5
dataDir=/wdata/zookeeper
dataLogDir=/wdata/zookeeper/logs
clientPort=2181
#maxClientCnxns=60
#autopurge.snapRetainCount=3
#autopurge.purgeInterval=1
server.1=192.168.2.177:2888:3888
server.2=192.168.2.178:2888:3888
server.3=192.168.2.180:2888:3888

配置文件說明:

server.X=A:B:C

其中 X 為服務器編號,A 為節點服務器的 IP 地址,B 為 Leader 通信端口,C 為 Zookeeper Leader選舉端口

dataLogDir:zookeeper事務日志目錄

dataDir:zookeeper數據存放目錄

clientPort:客戶端監聽端口

syncLimit:集群中 flower 服務器(F)跟 leader(L)服務器之間的請求和答應最多能容忍的心跳數。

initLimit:集群中的 flower 服務器 (F) 與 leader 服務器 (L) 之間初始連接時能容忍的最多心跳數(tickTime的數量)。

tickTime:CS通信心跳時間,客戶端與服務器或者服務器與服務器之間維持心跳,也就是每個tickTime時間就會發送一次心跳。通過心跳不僅能夠用來監聽機器的工作狀態,還可以通過心跳來控制Flower跟Leader的通信時間,默認情況下FL的會話時常是心跳間隔的兩倍。

Zookeeper集群

搭建Zookeeper集群前,我們需要修改系統的環境變量

分別在 192.168.2.177、192.168.2.178、192.168.2.180 上修改

[root@rocketmq-nameserver1 ~]# vim .bash_profile
export JAVA_HOME=/usr/local/jdk1.8.0_201
export ZOOKEEPER_HOME=/usr/local/zookeeper-3.4.13
export PATH=$PATH:$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin

復制配置文件

我們將已配置好的配置文件分發到另外兩臺(178和180)服務器

for i in 178 180; do scp zoo.cfg root@192.168.2.$i ; done

我們再到三臺服務器上添加服務器編號文件,文件中的內容為服務器編號,服務器的編號必須跟配置文件中的編號對應,否則集群無法啟動。

[root@rocketmq-nameserver1 zookeeper]# vim myid

Zookeeper 集群

其他兩臺服務器的編號分別為2和3。

到這里,配置已經完成,接下來我們啟動 zookeeper 服務。

分別在 3 臺服務器上運行

[root@rocketmq-nameserver1 ~]# zkServer.sh start

Zookeeper 集群

查看 zookeeper 服務啟動狀態

[root@rocketmq-nameserver1 ~]# zkServer.sh status

Zookeeper 集群

Zookeeper 集群

到這里,zookeeper 集群搭建完成。

下面介紹zookeeper的常見命令

conf:   輸出相關服務配置的詳細信息。
cons:  列出所有連接到服務器的客戶端的完全的連接 / 會話的詳細信息。包括“接受 / 發送”的包數量、會話 id 、操作延遲、最后的操作執行等等信息。
dump:列出未經處理的會話和臨時節點。
envi:   輸出關于服務環境的詳細信息(區別于 conf 命令)。
reqs:  列出未經處理的請求
ruok: 測試服務是否處于正確狀態。如果確實如此,那么服務返回“imok ”,否則不做任何相應。
stat:  輸出關于性能和連接的客戶端的列表。
wchs:列出服務器 watch 的詳細信息。
wchc:通過 session 列出服務器 watch 的詳細信息,它的輸出是一個與watch 相關的會話的列表。
wchp:通過路徑列出服務器 watch 的詳細信息。它輸出一個與 session相關的路徑。

zookeeper 命令行工具

通過 zkCli.sh 連接到 zookeeper 服務,如下

[root@rocketmq-nameserver2 ~]# zkCli.sh -server 192.168.2.178:2181

連接成功后會如下圖所示:

Zookeeper 集群

在這里我們可以輸入zookeeper命令進行相關操作??梢允褂?help 進行幫助查詢。下面是 zookeeper 命令行下的全部命令

stat path [watch]
set path data [version]
ls path [watch]
delquota [-n|-b] path
ls2 path [watch]
setAcl path acl
setquota -n|-b val path
history
redo cmdno
printwatches on|off
delete path [version]
sync path
listquota path
rmr path
get path [watch]
create [-s] [-e] path data acl
addauth scheme auth
quit
getAcl path
close
connect host:port

具體命令的使用,可參閱官方文檔,這里不做過多介紹。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女