本文在一台机器上部署了3个zookeeper节点,准确的说是伪集群,节点之间没有部署在不同的机器上,但操作是类似的,生产环境还是推荐节点之间要部署在不同的机器上。

⼀台机器上部署了3个server,也就是说单台机器及上运⾏多个Zookeeper实例。这种情况下,必须保证每个配置⽂档的各个端⼝号不能冲突,除clientPort不同之外,dataDir也不同。另外,还要在dataDir所对应的⽬录中创建myid⽂件来指定对应的Zookeeper服务器实例。

一、环境准备

1.下载稳定版本zookeeper,这里我下载的版本是zookeeper-3.6.2-bin.tar.gz。
2.创建⽬录zkcluster,将zookeeper解压到zkcluster下

mkdir zkcluster
tar -zxvf zookeeper-3.6.2-bin.tar.gz.tar.gz -C /zkcluster

3.修改名称并复制多几个节点

mv zookeeper-3.6.2 zookeeper01
cp -r zookeeper01/ zookeeper02 
cp -r zookeeper01/ zookeeper03

4.分别在zookeeper节点⽬录下创建data、logs⽬录用于存放数据文件和日志文件

mkdir data
cd data
mkdir logs

5.修改conf目录下的配置文件名

cd conf
mv zoo_sample.cfg zoo.cfg

二、配置修改

1.修改每一个zookeeper节点的配置信息zoo.cfg,配置端口、数据保存目录、日志保存目录信息,修改如下:

clientPort=2181
dataDir=/zkcluster/zookeeper01/data
dataLogDir=/zkcluster/zookeeper01/data/logs

clientPort=2182
dataDir=/zkcluster/zookeeper02/data
dataLogDir=/zkcluster/zookeeper02/data/logs

clientPort=2182
dataDir=/zkcluster/zookeeper02/data
dataLogDir=/zkcluster/zookeeper02/data/logs

2.在每个zookeeper的data⽬录下创建⼀个myid⽂件,用于记录每个服务器的id,id值随意,但需要保证不同,这里我的id配置为1,2,3。

touch myid

3.在zoo.cfg下,配置客户端访问端⼝和集群服务器IP列表。

#server.服务器ID=IP地址:通信端⼝:投票选举端⼝
server.1=127.0.0.1:2881:3881
server.2=127.0.0.1:2882:3882
server.3=127.0.0.1:2883:3883

4.依次启动三个zk实例,最后一个节点状态为leader,二个节点状态为follower,则集群搭建完成。

在这里插入图片描述

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐