搭建ZK分布式模式,由2n+1台服务器组成。
搭建集群有两种方式:
环境说明:
使用虚拟机启动三台ubunut18的主机,IP分别为192.168.204.175/176/177
修改host文件(一般位于C:\Windows\System32\drivers\etc
)
192.168.204.175 zk1
192.168.204.176 zk2
192.168.204.177 zk3
docker pull zookeeper:3.8.1
data
(自己命名)目录和myid
文件,myid
文件存储集群中此节点的唯一值。mkdir zk_home
cd zk_home/
mkdir data
cd data
touch myid
# 集群内唯一ID
echo 1 >> myid
# zk2
# echo 2 >> myid
# zk3
# echo 3 >> myid
zoo.cfg
文件# 创建存放配置文件的目录
cd zk_home/
mkdir conf
cd zk_conf
touch zoo.cfg
zoo.cfg
文件# 启动成功的配置
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data
clientPort=2181
# server后面的数字是集群节点的唯一ID
server.1=zk1:2888:3888;2181
server.2=zk2:2888:3888;2181
server.3=zk3:2888:3888;2181
--hostname
不同。docker run --name zookeeper --restart always -d \
-p 2888:2888 \
-p 3888:3888 \
-p 2181:2181 \
-v /home/liangshijie/zk_home/conf/zoo.cfg:/conf/zoo.cfg \
-v /home/liangshijie/zk_home/data:/data \
--hostname="zk1" \
zookeeper:3.8.1
# 分别进入zk1、zk2、zk3服务器,查看zk状态:
# 1.进入容器
docker exec -it <ID> bash
# 2.进入bin目录
cd /apache-zookeeper-3.8.1-bin/bin
# 3.运行命令查看状态
zkServer.sh status
# 4.命令执行结果
ZooKeeper JMX enabled by default
Using config: /conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: leader
# 登录zk3新增/app节点,并设置值
zkCli.cmd -server zk3:2181
create /app
set /app 11
# 登录zk1节点,查看/app值
zkCli.cmd -server zk1:2181
get /app