ZooKeeper学习笔记(四): Docker搭建ZooKeeper集群(这里是三个,具体可以修改对应参数)脚本

集群安装

  • 集群规划

    思考如果是10台服务器,需要部署多少台服务器呢(提示建议单数)

    使用docker搭建Zookeeper集群(这里是三个,具体可以修改对应参数)

    1. 创建网卡(zookeeper的)ip可以根据需求自定义

      docker network create my-zookeeper --subnet 172.38.0.0/16
      
    2. 使用脚本创建创建zoo.cfg

     for port  in $(seq 1 3);\
     do \
     mkdir -p /azang_data/zookeeper-${port}
     touch /azang_data/zookeeper-${port}/zoo.cfg
     cat << EOF >>/azang_data/zookeeper-${port}/zoo.cfg
     clientPort=2181
     dataDir=/data
     dataLogDir=/datalog
     tickTime=4000
     initLimit=10
     syncLimit=20
     autopurge.snapRetainCount=3
     autopurge.purgeInterval=0
     maxClientCnxns=60
     server.1=172.38.0.11:2888:3888
     server.2=172.38.0.12:2888:3888
     server.3=172.38.0.13:2888:3888
     EOF
     mkdir -p /azang_data/zookeeper-${port}/data
     touch /azang_data/zookeeper-${port}/data/myid
     cat << EOF >>/azang_data/zookeeper-${port}/data/myid
     ${port}
     EOF
     done
    

配置参数解读
server.1=172.38.0.1${port}:3888
server.A=B.C.D

  • A是一个数字,表示这个是第几号服务器;
    集群模式下配置一个文件myid,这个文件在dataDir目录下,这个文件里面有一个数据就是A的值,Zookeeper启动时读取池文件,拿到里面的数据与zoo.cfg里面的配置信息比较从而判断到底哪个是server
  • B是这个服务器的地址.
  • C是这个服务器Follower与集群中的Leader服务器交换信息的端口.
  • D是万一集群中的Leader服务器挂了,需要一个端口来重新进行选举,选一个新的Leader,而这个端口就是用来执行选举时服务器相互通信的端口.
  • 使用脚本启动docker容器

    # 接下来我们启动docker容器
     for port  in $(seq 1 3);\
    do \
    docker run -d -p 218${port}:2181 -p 288${port}:2888 -p 388${port}:3888 \
    --name zk-${port} --net my-zookeeper --ip 172.38.0.1${port} -v /azang_data/zookeeper-${port}/zoo.cfg:/conf/zoo.cfg \
    -v /azang_data/zookeeper-${port}/data:/data --restart=always zookeeper:latest 
    done
    
  • 查看是否成功

     root@azang405:/azang_data/zookeeper-1# docker ps
     CONTAINER ID   IMAGE                 COMMAND                  CREATED         STATUS         PORTS                                                                                                                                       NAMES
     1d9718594b03   zookeeper:latest      "/docker-entrypoint.…"   3 minutes ago   Up 3 minutes   8080/tcp, 0.0.0.0:2183->2181/tcp, :::2183->2181/tcp, 0.0.0.0:2883->2888/tcp, :::2883->2888/tcp, 0.0.0.0:3883->3888/tcp, :::3883->3888/tcp   zk-3
     2fcdb39e9ce9   zookeeper:latest      "/docker-entrypoint.…"   3 minutes ago   Up 3 minutes   8080/tcp, 0.0.0.0:2182->2181/tcp, :::2182->2181/tcp, 0.0.0.0:2882->2888/tcp, :::2882->2888/tcp, 0.0.0.0:3882->3888/tcp, :::3882->3888/tcp   zk-2
     f04635a2c8a3   zookeeper:latest      "/docker-entrypoint.…"   3 minutes ago   Up 3 minutes   0.0.0.0:2181->2181/tcp, :::2181->2181/tcp, 8080/tcp, 0.0.0.0:2881->2888/tcp, :::2881->2888/tcp, 0.0.0.0:3881->3888/tcp, :::3881->3888/tcp   zk-1```
    
    
    

其他ZooKeeper文章

ZooKeeper学习笔记(一): ZooKeeper是什么能用来做什么
ZooKeeper学习笔记(二): Zookeeper的安装与启动(Docker)
ZooKeeper学习笔记(三): Zookeeper的五大参数解读
ZooKeeper学习笔记(四): Docker搭建ZooKeeper集群(这里是三个,具体可以修改对应参数)脚本
ZooKeeper学习笔记(五): ZooKeeper集群选举机制
ZooKeeper学习笔记(六): 客户端命令行操作
ZooKeeper学习笔记(七):ZooKeeper依赖-API方法
ZooKeeper学习笔记(八):服务器动态上下线原理

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

社畜阿藏405

挣点钱不丢人吧?

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值