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

2022-02-12  本文已影响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的命令啦~

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

上一篇下一篇

猜你喜欢

热点阅读