什么是集群:多個節(jié)點干相同的事情
什么是分布式:多個節(jié)點協(xié)同完成一件事情, 每個節(jié)點做不同的事情
為什么搭建Zookeeper集群
- 高并發(fā)的情況下, 單機版性能不夠.
- 小栗子: 我的飯店一開始客人較少, 我招一個廚師炒菜即可. 后來我的飯店客人越來越多, 一個廚師不夠用了, 所以就需要再招幾個廚師.
- 單機版不具備高可用行.
- 小栗子: 依然是飯店的栗子, 如果我只有一個廚師, 那當(dāng)我的廚師生病了, 那我的飯店就掛掉了, 顯然這樣是不具備高可用性的.
本例搭建的是偽集群模式颊亮,即一臺機器上啟動三個zookeeper實例組成集群漠嵌,真正的集群模式無非就是實例IP地址不同,搭建方法沒有區(qū)別
Step1:配置JAVA環(huán)境凶异,檢驗環(huán)境:java -version
Step2:下載并解壓zookeeper
# cd /usr/local
# wget http://mirror.bit.edu.cn/apache/zookeeper/stable/zookeeper-3.4.12.tar.gz
# tar -zxvf zookeeper-3.4.12.tar.gz
# cd zookeeper-3.4.12
Step3:重命名 zoo_sample.cfg文件
# cp conf/zoo_sample.cfg conf/zoo-1.cfg
Step4:配置集群列表:修改配置文件zoo-1.cfg,原配置文件里有的班巩,修改成下面的值隅肥,沒有的則加上
# vim conf/zoo-1.cfg
dataDir=/tmp/zookeeper-1
clientPort=2181
server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2889:3889
server.3=127.0.0.1:2890:3890
Step4:再從zoo-1.cfg復(fù)制兩個配置文件zoo-2.cfg和zoo-3.cfg椿肩,只需修改dataDir和clientPort不同即可
# cp conf/zoo-1.cfg conf/zoo-2.cfg
# cp conf/zoo-1.cfg conf/zoo-3.cfg
# vim conf/zoo-2.cfg
dataDir=/tmp/zookeeper-2
clientPort=2182
# vim conf/zoo-2.cfg
dataDir=/tmp/zookeeper-3
clientPort=2183
Step5:標(biāo)識Server ID
創(chuàng)建三個文件夾/tmp/zookeeper-1,/tmp/zookeeper-2钩骇,/tmp/zookeeper-2比藻,在每個目錄中創(chuàng)建文件myid 文件,寫入當(dāng)前實例的server id倘屹,即1.2.3
# cd /tmp/zookeeper-1
# vim myid
1
# cd /tmp/zookeeper-2
# vim myid
2
# cd /tmp/zookeeper-3
# vim myid
3
Step6:啟動三個zookeeper實例
# bin/zkServer.sh start conf/zoo-1.cfg
# bin/zkServer.sh start conf/zoo-2.cfg
# bin/zkServer.sh start conf/zoo-3.cfg
Step7:檢測集群狀態(tài)银亲,也可以直接用命令“zkCli.sh -server IP:PORT”連接zookeeper服務(wù)端檢測
image.png