[root@localhost ~]# wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz
[root@localhost ~]# tar -zxvf zookeeper-3.4.14.tar.gz
[root@localhost ~]# cd zookeeper-3.3.6/conf/ [root@localhost conf]# ls configuration.xsl log4j.properties zoo_sample.cfg
[root@localhost conf]# cp zoo_sample.cfg zoo.cfg [root@localhost conf]# ls configuration.xsl log4j.properties zoo.cfg zoo_sample.cfg
[root@localhost conf]# vi zoo.cfg
一、單機模式:不作集羣,內容以下(data目錄需改爲你真實輸出目錄):
# 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. dataDir=/usr/local/mycrosoftware/zookeeper/zookeeper-3.4.14/data dataLogDir=/usr/local/mycrosoftware/zookeeper/zookeeper-3.4.14/log # the port at which the clients will connect clientPort=2181
二、集羣模式:要作集羣,內容以下(dataDir目錄和server地址需改爲你真實部署機器的信息):目前並未測試node
tickTime=2000 initLimit=10 syncLimit=5 dataDir=/root/zookeeper-3.3.6/data clientPort=2181 server.0=192.168.0.109:2555:3555 server.1=192.168.0.110:2555:3555 server.2=192.168.0.111:2555:3555
並在data目錄下放置myid文件:(上面zoo.cfg中的dataDir)linux
mkdir data vi myid
myid指明本身的id,對應上面zoo.cfg中server.後的數字,第一臺的內容爲1,第二臺的內容爲2,內容以下apache
1
[root@localhost bin]# ./zkServer.sh start JMX enabled by default Using config: /root/zookeeper-3.3.6/bin/../conf/zoo.cfg Starting zookeeper ... STARTED
[root@localhost bin]# ./zkCli.sh -server 127.0.0.1:2181
[root@localhost bin]# ps -aux | grep 'zookeeper' #查看進程 netstat -anp|grep 2181 #查看zookeeper的端口號命令 bin/zkServer.sh stop #zookeeper 的中止命令 bin/zkServer.sh status #zookeeper 的狀態查看命令
運行配置的做用
initLimit
ZooKeeper集羣模式下包含多個zk進程,其中一個進程爲leader,餘下的進程爲follower。
當follower最初與leader創建鏈接時,它們之間會傳輸至關多的數據,尤爲是follower的數據落後leader不少。initLimit配置follower與leader之間創建鏈接後進行同步的最長時間。服務器
syncLimit
配置follower和leader之間發送消息,請求和應答的最大時間長度。測試
tickTime
tickTime則是上述兩個超時配置的基本單位,例如對於initLimit,其配置值爲5,說明其超時時間爲 2000ms * 5 = 10秒。spa
dataLogDir
dataLogDir指定的路徑是事務日誌保存路徑.net
dataDir
dataDir指定的路徑是快照保存路徑,當沒有指定dataLogDir路徑時,事務日誌也會保存在該目錄下日誌
server.id=host:port1:port2
其中id爲一個數字,表示zk進程的id,這個id也是dataDir目錄下myid文件的內容。
host是該zk進程所在的IP地址,port1表示follower和leader交換消息所使用的端口,port2表示選舉leader所使用的端口。
其配置的含義跟單機模式下的含義相似,不一樣的是集羣模式下還有一個myid文件。myid文件的內容只有一行,且內容只能爲1 - 255之間的數字,這個數字亦即上面介紹server.id中的id,表示zk進程的id。code
注意
若是僅爲了測試部署集羣模式而在同一臺機器上部署zk進程,server.id=host:port1:port2配置中的port參數必須不一樣。可是,爲了減小機器宕機的風險,強烈建議在部署集羣模式時,將zk進程部署不一樣的物理機器上面。
博客參考:https://blog.csdn.net/qq_27739989/article/details/78078431server
======================================================
2019/11/7 集羣測試
準備工做:一臺物理機,建立兩臺虛擬機。
第一步,拷貝zookeeper的tar.gz,進入zookeeper目錄,能夠看到zookeeper安裝包
cd /usr/local/mycrosoftware/zookeeper
命令跨服務器拷貝,而後輸入128服務器的密碼,就會自動拷貝到128服務器的mysoftware目錄中,而後進行解壓
跨服務拷貝 scp -r -P 22 zookeeper-3.4.14.tar.gz root@192.168.64.128:/usr/locFal/mycrosoftware
解壓命令 tar -zxvf zookeeper-3.4.14.tar.gz
zookeeper須要依賴jdk,因此須要先在28上安裝jdk,jdk安裝步驟另一篇博客有。
修改zoo.cfg
建立myid
mkdir data vi myid
啓動zookeeper
[root@localhost bin]# ./zkServer.sh start JMX enabled by default Using config: /root/zookeeper-3.3.6/bin/../conf/zoo.cfg Starting zookeeper ... STARTED
集羣測試:
登陸zookeeper
./zkCli.sh -server 192.168.64.129:2181
查看節點命令:
ls /
ls /dubbo
建立節點
create /node_group testnode
登陸另一臺集羣,查看節點,發現多了一個129虛擬機建立的節點。
./zkCli.sh -server 192.168.64.128:2181
查看節點信息
get /node_group
stat /node_group
修改節點的值 set
set /node_group new_node_group
刪除節點.刪除 /node_group,不會返回任何內容。若是有子節點的時候,連帶子節點也一塊兒刪除。
rmr /node_group