美文网首页
【Zookeeper系列】基于docker-compose快速搭

【Zookeeper系列】基于docker-compose快速搭

作者: 爱打乒乓的程序员 | 来源:发表于2022-02-12 23:55 被阅读0次

    事先声明,本篇文章的 ZK 集群部署方式不适合在生产环境使用,实际上只是一个伪集群,单机部署,依旧有单点故障的可能。但读者可基于以下内容,快速搭建 ZK 集群,同时借鉴部署的方式,以便日后相关学习~

    在学习使用Zookeeper命令之前,咱们先部署ZK集群,通过docker-compose能够很方便构建部署镜像,所以选择docker-compose的方式部署。当然您也可以下载zookeeper的包,执行命令启动zk,然后再修改配置文件,设置集群信息,不过这种方式比较麻烦,所以在这里就不再赘述啦。【docker-compose的使用,可以另外找文档了解,基于docker容器很容易入门的】

    关于zookeeper的docker搭建,也可以参考官方 Docker Hub

    version: '3.1'
    
    services:
      zoo1:
        image: zookeeper
        restart: always
        hostname: zoo1
        container_name: zoo1
        # 每台zk对外的端口
        ports:
          - 2181:2181
        environment:
          # zk服务器唯一Id,不能和其它服务器myid一样
          ZOO_MY_ID: 1
          # zk集群的服务器
          ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181 server.4=zoo4:2888:3888;2181 server.5=zoo5:2888:3888;2181
    
      zoo2:
        image: zookeeper
        restart: always
        hostname: zoo2
        container_name: zoo2
        ports:
          - 2182:2181
        environment:
          ZOO_MY_ID: 2
          ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181  server.4=zoo4:2888:3888;2181 server.5=zoo5:2888:3888;2181
    
      zoo3:
        image: zookeeper
        restart: always
        hostname: zoo3
        container_name: zoo3
        ports:
          - 2183:2181
        environment:
          ZOO_MY_ID: 3
          ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181 server.4=zoo4:2888:3888;2181 server.5=zoo5:2888:3888;2181
    
      zoo4:
        image: zookeeper
        restart: always
        hostname: zoo4
        container_name: zoo4
        ports:
          - 2184:2181
        environment:
          ZOO_MY_ID: 4
          ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181 server.4=zoo4:2888:3888;2181 server.5=zoo5:2888:3888;2181
           
      zoo5:
        image: zookeeper
        restart: always
        hostname: zoo5
        container_name: zoo5
        ports:
          - 2185:2181
        environment:
          ZOO_MY_ID: 5
          ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181 server.4=zoo4:2888:3888;2181 server.5=zoo5:2888:3888;2181
    

    执行 docker-compose up -d,当五台服务器启动成功后,会根据配置中的ZOO_MY_ID,选择最大值作为leader。
    ps.并不一定是根据 ZOO_MY_ID 最大值选择为 Leader,实际上 ZK 集群内部会有 Leader 选举的过程

    部署校验

    查看zk的容器Id

    进入容器:docker exec -it 容器Id /bin/bash
    查看zk状态:bin/zkServer.sh status
    根据截图的Mode可知,当前ZK是Leader角色

    进入zk服务:bin/zkCli.sh -server

    接下来就可以开始玩zk的命令啦~

    如果觉得文章不错的话,麻烦点个赞哈,你的鼓励就是我的动力!对于文章有哪里不清楚或者有误的地方,欢迎在评论区留言~

    相关文章

      网友评论

          本文标题:【Zookeeper系列】基于docker-compose快速搭

          本文链接:https://www.haomeiwen.com/subject/xropcrtx.html