文章目录
1:准备
我们还是准备上次搭建 rocketmq 集群的四台虚拟机来搭建,分别是 rocketmq-151, rocketmq-152, rocketmq-153, rocketmq-154
2:集群搭建
2.1:源码下载
ZooKeeper 官网地址:https://zookeeper.apache.org
我们进去到官网
点击下载后页面会跳转到选择版本页
来到下载页面,点击下载即可
2.2:上传到 rocketmq-151 中并解压文件夹
通过 xftp 将源码上传到 rocketmq-151 中,我是存放到了 zookeeper 的文件夹中。
来到 zookeeper 文件夹,继行解压
cd zookeeper/
# 解压
tar xf apache-zookeeper-3.7.0-bin.tar.gz
# 重命名
mv apache-zookeeper-3.7.0-bin apache-zookeeper-3.7.0
2.3:修改配置文件
我们来到配置文件的文件夹,首先复制一份模板作为存根(个人习惯),再去配置配置文件
cd apache-zookeeper-3.7.0/conf/
ls
cp zoo_sample.cfg zoo.cfg
vi zoo.cfg
前面的一些配置信息,我们修改一下持久化目录,在下面添加如下内容
# 修改持久化目录
# 我这边修改成 /var/zookeeper/zk
server.1=192.168.10.151:2888:3888
server.2=192.168.10.152:2888:3888
server.3=192.168.10.153:2888:3888
server.4=192.168.10.154:2888:3888
2.4:创建持久化目录并创建 myid
前面我们设置了持久化目录,但实际上我并没有这个目录,所以需要我们创建,创建完成后,我们去到那个目录
mkdir -p /var/zookeeper/zk
cd /var/zookeeper/zk
在这个目录下创建 myid ,并把前面设置的 myid 写入进去
# 创建 myid ,写入1
vi myid
2.5:将源码复制到其余三台机器
1:将 zookeeper 文件夹远程复制到 152
cd /home/
# 将 zookeeper 文件夹远程复制到 152 相同的目录下,中间需要输入yes 和密码
scp -r ./zookeeper/ 192.168.10.152:`pwd`
2:将 zookeeper 文件夹远程复制到 153,中间需要输入yes 和密码
scp -r ./zookeeper/ 192.168.10.153:`pwd`
3:将 zookeeper 文件夹远程复制到 154,中间需要输入yes 和密码
scp -r ./zookeeper/ 192.168.10.154:`pwd`
2.6:152,153,154 创建 myid 文件夹
1:首先是 152
# 创建 文件夹
mkdir -p /var/zookeeper/zk
# 将2 写入myid ,myid 不存在的话自动创建
echo 2 > /var/zookeeper/zk/myid
# 查看myid 的数据
cat /var/zookeeper/zk/myid
2:然后是 153
# 创建 文件夹
mkdir -p /var/zookeeper/zk
# 将3 写入myid ,myid 不存在的话自动创建
echo 3 > /var/zookeeper/zk/myid
# 查看myid 的数据
cat /var/zookeeper/zk/myid
3:最后是 154
# 创建 文件夹
mkdir -p /var/zookeeper/zk
# 将4 写入myid ,myid 不存在的话自动创建
echo 4 > /var/zookeeper/zk/myid
# 查看myid 的数据
cat /var/zookeeper/zk/myid
2.7:四台机器配置环境变量
1:对于 151机器
vi /etc/profile
输入以下内容
# zookeeper
export ZOOKEEPER_HOME=/home/zookeeper/apache-zookeeper-3.7.0
export PATH=$PATH:$ZOOKEEPER_HOME/bin
然后,执行命令,刷新配置 ,就可以在任何地方输入 zk+Tab键 ,去发现 zookeeper 指令了
source /etc/profile
2:因为四台机器的配置文件都是一样的,所以我这边直接通过覆盖来完成,过程中输入密码
scp /etc/profile 192.168.10.152:/etc
scp /etc/profile 192.168.10.153:/etc
scp /etc/profile 192.168.10.154:/etc
完成后需要在另外三台机器执行刷新配置的操作,我这里操作全部会话,也可以分别去刷新
source /etc/profile
2.8:关闭防火墙
四台机器都要执行以下命令:
# 查看防火墙状态
systemctl status firewalld
# 暴力:禁用防火墙
systemctl stop firewalld
# 查看防火墙状态
systemctl status firewalld
2.9:启动客户端
经过我们上面的操作,启动方式有两种
# 后台启动
zkServer.sh start
# 前台启动(我们使用这个,可以查看日志)
zkServer.sh start-foreground
根据我们前面的论述,谁的 myid 比较大,过半选举的时候就会被选择成 leader
我们分别启动四台机器,通过前台启动
查看 节点角色
先打开 153,
zkServer.sh status
先打开 154
zkServer.sh status
可以看出 154 是 leader,153 是跟随者。
2.10:选主测试
我们手动断开 154,停几秒,观察 153 的角色信息
先断开 154
查看 153 的角色信息,已经从跟随者变成了 leader
zkServer.sh status
3:简单使用
3.1:连接客户端
四个机器中的任何一个都可以建立连接,默认连接本机。
zkCli.sh
3.2:常用命令
# 显示根
ls /
# 创建节点,”“ 中是数据,”“不能省略 格式: create /节点名称/... ”数据“
create /k1 "k1"
create /k1/k2 "k2"
# 设置节点数据
set /k1 "other"
# 获取节点信息
get /k1
# 创建临时节点
create -e /xoxo ""
# 删除节点
rmr /k1/k2