ZooKeeper是一个开源的分布式协调服务,它主要用于解决分布式系统中的一致性、可靠性和协调性等问题。
选择版本
去archive.apache.org/dist/zookeeper/,选择Zookeeper版本,我选择3.4.6
上传服务器
三台机器复制地址,通过wget下载
wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz
解压
三台机器都解压
tar -zxvf zookeeper-3.4.6.tar.gz -C /usr/local/
创建数据存放目录
三台机器创建数据存放目录
cd /usr/local/zookeeper-3.4.6/
mkdir data
修改配置文件名称并配置
将 conf下zoo_sample.cfg 文件改名为 zoo.cfg
cd conf
mv zoo_sample.cfg zoo.cfg
配置数据存放目录
vim zoo.cfg
dataDir=/usr/local/zookeeper-3.4.6/data
配置集群
在每个zookeeper的 data 目录下创建一个 myid 文件,内容分别是1、2、3 。这个文件就是记录每个服务器的ID
echo 1 >/usr/local/zookeeper-3.4.6/data/myid
echo 2 >/usr/local/zookeeper-3.4.6/data/myid
echo 3 >/usr/local/zookeeper-3.4.6/data/myid
在每一个zookeeper 的 zoo.cfg配置客户端访问端口(clientPort)和集群服务器IP列表。集群服务器IP列表如下
vim /usr/local/zookeeper-3.4.6/conf/zoo.cfg
server.1=192.168.2.3:2881:3881
server.2=192.168.2.4:2881:3881
server.3=192.168.2.5:2881:3881
解释:server.服务器ID=服务器IP地址:服务器之间通信端口:服务器之间投票选举端口
启动集群
启动集群就是分别启动每个实例。
/usr/local/zookeeper-3.4.6/bin/zkServer.sh start
启动后我们查询一下每个实例的运行状态
bin/zkServer.sh status
先查询第一个服务
Mode为follower表示是跟随者(从)
再查询第二个服务Mod 为leader表示是领导者(主)
查询第三个为跟随者(从)