开发者学堂课程【RocketMQ 知识精讲与项目实战(第二阶段):Zookeeper 集群搭建】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/703/detail/12400
Zookeeper 集群搭建
内容介绍:
一、准备工作
二、配置集群
三、启动集群
本节搭建 Dubbo 的注册中心 Zookeeper 的集群。
为了提高 Zookeeper 的高可用,通常在企业中 Zookeepe 是以集群的方式去进行搭建。搭建集群总共去搭建3个节点来组成一个集群。搭建3个节点实际上在生产环境中通常3个节点去部署到3台不同的服务器上。此次不需要搭建3个服务器:搭建伪集群。
伪集群是在一个节点上搭建3个 Zookeeper 节点。若之后想要搭建真正集群,只需要切换ip地址为对应的服务器地址即可。
搭建 Zookeeper 集群分为三步:第一步准备工作,第二步配置集群,第三步启动集群。
一、准备工作
1.安装 JDK
2.将 Zookeeper 上传到服务器
3.解压 Zookeeper,并创建 data 目录,将 conf 下的 zoo_sample.cfg 文件改名为 zoo.cfg
4.建立/user/local/zookeeper-cluster ,将解压后的 Zookeeper 复制到以下三个目录
本机已经准备好了一台服务器 Zookeeper,为了区分服务器作用,首先来安装 JDK,演示的服务器已经远程连接,再来重新打开,通过 PuTTY 连接。
服务器的 ip 地址在本机是140,通过本机140连接上,输入用户名密码。
可以准备自己的一台服务器进行搭建。安装 JDK 前本机已经安装好了 java 服务,输入 java -version,java 已经安装成功并且配置了环境变量。
接着将 Zookeeper 上传到服务器,Zookeeper 安装包在提供资料里,此处本机已经上传到服务器,输入 cd /user/
ll
cd local/
clear
ls
cd zookeeper-cluster/
ll
在该文件夹中存在刚才上传的安装包,上传后首先对安装包进行解压,输入
tar -zvxf zookeeper-3.4.6.tar.gz
解压后输入 ls
就可以看到解压后的目录:
zookeeper-3.4.6 zookeeper-3.4.6.tar.gz
再来输入cd zookeeper-3.4.6
ll
cd conf/
ll
对配置文件进行重命名,zoo_sample.cfg 配置文件是进行一个示例,在使用时参考配置文件进行处理即可。进行重命名,输入 mv zoo_sample.cfg zoo.cfg
ll
重命名完成后再来搭建3个节点的集群,在 zookeeper-cluster 目录下,输入
cd ..
cd ../
pwd
结果显示/usr/local/zookeeper-cluster
创建输入mkdir zookeeper-1
mkdir zookeeper-2
mkdir zookeeper-3
ls
创建好后可以看到结果显示
接下来要将解压后的 zookeeper-3.4.6文件夹放到此处,输入
cp -rf zookeeper-3.4.6 zookeeper-1
可以进入查看,输入cd zookeeper-1
ll
继续回到刚才目录,输入clear
cd ..
ls
cp -rf zookeeper-3.4.6 zookeeper-2
cp -rf zookeeper-3.4.6 zookeeper-3
复制完成后需要在配置文件中完成一些配置,由于现在是在一个服务器上搭建3个节点的集群,所以默认端口号进行默认修改进行区分,分别为2181 2182 2183
输入clear
cd zookeeper-1
ll
cd zookeeper-3.4.6
cd conf/
ll
vi zoo.conf
进入配置文件后找到 clientPort,clientPort 默认为2181,还存在 dataDir=/tmp/zookeeper 当前存放数据文件夹的位置
先退出,输入cd ..
cd ..
ll
pwd
结果显示当前在 zookeeper-1目录,在该目录中创建一个 data 目录,输入
mkdir data
继续编辑配置文件,输入
vi zookeeper-3.4.6/conf/zoo.cfg
进入后找到 dataDir,将刚才创建的目录名称写入,一般在 Linux 中进行目录编写时可以暂时回到 shell 命令下,因为可以通过 pwd 快速得到目录。所以现在先暂时退出当前 vi 的模式,进入到 data 下,输入
cd data/
pwd
结果显示/usr/local/zookeeper-cluster/zookeeper-1/data
刚才从 vi 模式中退出,若想要快速返回可以使用 ctrl+d,进入后将 dataDir 后改为
/usr/local/zookeeper-cluster/zookeeper-1/data
以上第一个节点配置完成,配置了端口号和 dataDir。按照同样方式配置 zookeeper-2和 zookeeper-3,输入
mkdir zookeeper-2/data
mkdir zookeeper-3/data
vi zookeeper-2/zookeeper-3.4.6/conf/zoo.cfg
进入后将端口号修改为2182,dataDir后改为
/usr/local/zookeeper-cluster/zookeeper-2/data
vi zookeeper-3/zookeeper-3.4.6/conf/zoo.cfg
进入后将端口号修改为2183,dataDir 后改为
/usr/local/zookeeper-cluster/zookeeper-3/data
配置成功后来检查,输入cd zookeeper-1/
ll
zookeeper-2、zookeeper-3类似,结果正常
准备工作已经完成,如果此处配置的是真实的生产环境集群,3个节点就是在不同的服务器上,端口号就不必修改。
二、配置集群
1.在每个 zookeeper 的 data 目录下创建一个 myid 文件,内容分别是1、2、3(1、2、3代表集群中节点的id)。
输入clear
cd ..
回到集群根目录创建文件,输入
touch zookeeper-1/data/myid
touch zookeeper-2/data/myid
touch zookeeper-3/data/myid
创建成功后编辑每一个内容,输入vi zookeeper-1/data/myid
输入1
退出后输入vi zookeeper-2/data/myid
输入2
退出后输入vi zookeeper-3/data/myid
输入3
配置完成后来进行检查,输入
cat zookeeper-1/data/myid
cat zookeeper-2/data/myid
cat zookeeper-3/data/myid
2.在每一个 zookeeper 的 zoo.cfg 配置客户端访问端口(clientPort)和集群服务器IP列表。集群服务器IP列表如下
server.1=192.168.25.140:2881:3881
server. 2=192.168.25.140:2882:3882
server. 3=192.168.25.140:2883:3883
上述除了 ip 地址还存在两个端口号,第一个端口是服务器之间通信端口,第二个是服务器之间投票选举端口。
Zookeeper 集群是主从结构,主节点就是通过投票选出,所以要配置每一个节点端口号。
输入vi zookeeper-1/zookeeper-3.4.6/conf/zoo.cfg
进入后在最下面添加上代码
server.1=192.168.25.140:2881:3881
server. 2=192.168.25.140:2882:3882
server. 3=192.168.25.140:2883:3883
退出后输入vi zookeeper-2/zookeeper-3.4.6/conf/zoo.cfg
进入后在最下面添加上代码
server.1=192.168.25.140:2881:3881
server. 2=192.168.25.140:2882:3882
server. 3=192.168.25.140:2883:3883
退出后输入vi zookeeper-3/zookeeper-3.4.6/conf/zoo.cfg
进入后在最下面添加上代码
server.1=192.168.25.140:2881:3881
server. 2=192.168.25.140:2882:3882
server. 3=192.168.25.140:2883:3883
保存完成后配置集群完成。
三、启动集群
之后来启动集群。
输入./zookeeper-1/zookeeper-3.4.6/bin/zkServer.sh start
启动后启动第二个,
输入./zookeeper-2/zookeeper-3.4.6/bin/zkServer.sh start
启动后启动第三个,
输入./zookeeper-3/zookeeper-3.4.6/bin/zkServer.sh start
启动完成后哪些节点是主节点,哪些节点是从节点。输入
./zookeeper-1/zookeeper-3.4.6/bin/zkServer.sh status
可以看到结果显示Mode:follower代表跟随者,是从节点
输入
./zookeeper-2/zookeeper-3.4.6/bin/zkServer.sh status
可以看到结果显示Mode:Leader是主节点
输入
./zookeeper-3/zookeeper-3.4.6/bin/zkServer.sh status
可以看到结果显示 Mode:follower 代表跟随者,是从节点.
以上就搭建好了 zookeeper 集群。总结搭建 zookeeper 集群第一步准备工作:安装 JDK;
将 Zookeeper 上传到服务器;解压 Zookeeper,并创建 data 目录,将 conf 下的 zoo_sample.cfg 文件改名为zoo.cfg;创建3个目录分别代表3个节点;将当前每一个 zookeeper 复制到每一个目录下更改端口号,配置当前数据下地址。
第二步配置集群,先配置节点 id,再将节点连接起来
第三步是启动集群,分别用 bin/zkServer.sh 执行 start 命令进行启动。