zookeeper 3.8.0 cluster docker-compose 部署

本文档详细介绍了如何使用Docker Compose部署一个由三个节点组成的Zookeeper集群,并提供了配置文件示例、运行步骤、集群状态检查方法以及客户端zkCli.sh的使用。集群节点采用奇数配置以确保选举稳定性,通过容器内部和主机端口映射进行访问,同时展示了通过AdminServer的HTTP接口获取集群状态的新方法。

由于zookeeper 集群选择leader的策略是少数服从多数原则,所以建议选择奇数个结点

1 compose file 文件

version: '3.7'

services:
  zoo1:
    image: zookeeper:3.8.0
    restart: always
    hostname: zoo1
    container_name: zookeeper-cluster-1
    ports:
      - 12181:2181
      - 18080:8080
    volumes:
      - "/home/data/cluster/zookeeper/zookeeper-1/data:/data"
      - "/home/data/cluster/zookeeper/zookeeper-1/datalog:/datalog"
      - "/home/data/cluster/zookeeper/zookeeper-1/logs:/logs"
    environment:
      ZOO_MY_ID: 1
      ALLOW_ANONYMOUS_LOGIN: "yes"
      ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181
      ZOO_4LW_COMMANDS_WHITELIST: "*" 
    networks:
      brzk-kafka:
        ipv4_address: 172.19.0.11

  zoo2:
    image: zookeeper:3.8.0
    restart: always
    hostname: zoo2
    container_name: zookeeper-cluster-2
    ports:
      - 22181:2181
      - 28080:8080
    volumes:
      - "/home/data/cluster/zookeeper/zookeeper-2/data:/data"
      - "/home/data/cluster/zookeeper/zookeeper-2/datalog:/datalog"
      - "/home/data/cluster/zookeeper/zookeeper-2/logs:/logs"
    environment:
      ZOO_MY_ID: 2
      ALLOW_ANONYMOUS_LOGIN: "yes"
      ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181
      ZOO_4LW_COMMANDS_WHITELIST: "*"
    networks:
      brzk-kafka:
        ipv4_address: 172.19.0.12

  zoo3:
    image: zookeeper:3.8.0
    restart: always
    hostname: zoo3
    container_name: zookeeper-cluster-3
    ports:
      - 32181:2181
      - 38080:8080
    volumes:
      - "/home/data/cluster/zookeeper/zookeeper-3/data:/data"
      - "/home/data/cluster/zookeeper/zookeeper-3/datalog:/datalog"
      - "/home/data/cluster/zookeeper/zookeeper-3/logs:/logs"
    environment:
      ZOO_MY_ID: 3
      ALLOW_ANONYMOUS_LOGIN: "yes"
      ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181
      ZOO_4LW_COMMANDS_WHITELIST: "*"
    networks:
      brzk-kafka:
        ipv4_address: 172.19.0.13
networks:
  brzk-kafka:
        ipam:
            driver: default
            config:
                - subnet: "172.19.0.0/24"

2 运行

docker-compose --project-name myzkcomposeprj up -d

3 查看集群

在某个容器运行客户端:

docker exec --interactive --tty zookeeper-cluster-1 bin/zkCli.sh -server :2181 config| grep ^server

[hostuser@host-machine]$ docker exec --interactive --tty zook
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值