• 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 /

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

  • 相关阅读:
    HBASE & DB : ACID 事务 与 相关实现
    LeetCode Largest Number
    LeetCode Power of Two
    LeetCode Dungeon Game
    LeetCode The Skyline Problem
    LeetCode Kth Smallest Element in a BST
    LeetCode Flatten Binary Tree to Linked List
    JAVA 并发:CLH 锁 与 AbstractQueuedSynchronizer
    为什么引入TSS
    特权级概述(哥子就想知道CPU是如何验证特权级的)GATE+TSS
  • 原文地址:https://www.cnblogs.com/inkyi/p/15515976.html
Copyright © 2020-2023  润新知