zoukankan      html  css  js  c++  java
  • win10下用Docker Desktop搭建zookeeper集群

    1.安装

    2.配置阿里云

    3.获取镜像

    这三步网上教程很多,我就不写了。
    因为每个版本可能会带来一些改动,我就说一下我使用版本

    zookeeper:3.7.0
    Docker Desktop 4.1.1
    Windows 10 专业版 21H1

    4.配置docker-compose.yml

    如果一个一个的配置docker来做zk集群太麻烦,docker有一个解决方案,通过一个配置文件,就能搭建一个集群。
    创建一个名为:docker-compose.yml的配置文件。

    docker的命令会自动识别这个文件名,如果不起这个名字能不能用我也没试过,感兴趣的可以自己琢磨一下。

    比如我们要创建集群数是三台

    version: '3.1'
    
    services:
      zoo1:
        image: zookeeper
        restart: always
        hostname: zoo1
        container_name: zoo1
        ports:
          - 2181:2181
        environment:
          ZOO_MY_ID: 1
          ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3: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
    
      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
    

    这里有个大坑 一定要小心
    zk的版本不同,ZOO_SERVERS也不同,有些需要加;2181,有些不需要加。
    网上查到的资料, zookeeper3.5之前是不需要加的, zookeeper3.5之后需要加。
    具体写法参照zookeeper在docker hub的主页: https://hub.docker.com/_/zookeeper

    如果你报错下面的错误,大概就是这个;2181原因

    ZooKeeper JMX enabled by default
    Using config: /conf/zoo.cfg
    Client port not found in static config file. Looking in dynamic config file.
    grep: : No such file or directory
    Client port not found. Terminating.
    

    5.启动

    在 docker-compose.yml 的文件目录下,执行指令
    docker-compose up -d -d 就是不打印日志

    执行后的结果

    PS C:\xxxxxxxx> docker-compose up -d
    Creating network "desktop_default" with the default driver
    Creating zoo1 ... done
    Creating zoo3 ... done
    Creating zoo2 ... done
    

    执行 docker ps 查看一下是否添加成功了,如果看到你配置文件里的名字,我这边是zoo1,zoo2,zoo3,就说明启动成功。

    6.验证一下

    ps指令看到的是有几个服务,服务的启动是否成功,还是需要连上服务去看一下

    6.1 查看zookeeper状态

    连接到zoo1,查看一下服务的状态
    docker exec -it zoo1 bash ./bin/zkServer.sh status

    返回结果

    PS C:\xxxxxxxx> docker exec -it zoo1 bash ./bin/zkServer.sh status
    ZooKeeper JMX enabled by default
    Using config: /conf/zoo.cfg
    Client port found: 2181. Client address: localhost. Client SSL: false.
    Mode: follower
    

    Mode: follower 追随者节点
    Mode: leader 领导者节点

    6.2 连接到某台zk上试一下

    进入docker
    docker exec -it zoo1 /bin/bash
    连接查看
    ./bin/zkCli.sh -server 127.0.0.1:2181
    随便执行下指令看看是否成功
    ls /

    如果可以正常返回,大功告成

  • 相关阅读:
    linux的lsof命令
    linux find
    linux 查看磁盘空间大小
    eclipse运行时编码设置
    WebService工作原理
    Java获取字符串编码方式
    JavaScript,base64加密解密
    如何用javascript 的eval动态执行一个需要传对象参数的函数
    struts2结果类型
    执行maven-build.cmd失败
  • 原文地址:https://www.cnblogs.com/inkyi/p/15515976.html
Copyright © 2011-2022 走看看