Zookeeper集群docker部署

集群角色

zookeeper 集群中的机器分为一下三种角色
leader:为客户端提供读写服务(事务性操作),并维护集群状态,它是由集群选举所产生的;
follower:为客户端提供读(非事务性操作),转发给leader写(事务性操作),参与选举操作;
observer:角色与follower类型,但无选举操作;

zookeeper端口

1:2181:对client端提供服务
2:2888:集群内机器通讯使用(leadre监听此端口)
1:3888:选举leader使用

docker-compose.yml文件

yml 复制代码
version: '3'
services:
  zoo1:
    image: zookeeper:latest
    restart: always
    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:latest
    restart: always
    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:latest
    restart: always
    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
      
  zoonavigator:
    image: elkozmon/zoonavigator:latest
    ports:
      - "9000:9000"
    environment:
      ZKUI_ZK_SERVER: "zoo1:2181,zoo2:2181,zoo3:2181"

通过一下命令查看那个zk是leader活着follower

bash 复制代码
[root@localhost zookeeperDocker]# docker exec -it zoo1 ./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
[root@localhost zookeeperDocker]# docker exec -it zoo2 ./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
[root@localhost zookeeperDocker]# docker exec -it zoo3 ./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: leader

注意:如果zookeeper容器启动时报错:Cannot create GC thread. Out of system resources,这就需要升级docker,是docker版本的问题

相关推荐
IvanCodes4 小时前
三、Kafka安装详细教程
大数据·分布式·kafka
灰阳阳4 小时前
Docker-镜像-命令清单
java·docker·eureka
灰阳阳4 小时前
docker基础命令讲解
运维·docker·容器·eureka
sxgzzn5 小时前
分布式光伏管理系统:实现多场景电站的集中监控与智能运维
运维·分布式
写代码的小阿帆5 小时前
SpringBoot项目部署——命令行、Nginx代理与docker容器
spring boot·nginx·docker
曾阿伦5 小时前
遍历 ES 节点校验分词:分布式集群分词一致性保障实践
网络·分布式·elasticsearch
我要用代码向我喜欢的女孩表白5 小时前
spark介绍
大数据·分布式·spark
yumgpkpm5 小时前
OpenClaw(养龙虾) +关于Hadoop hive的Skills(CLoudera CDH、CDP)
大数据·数据仓库·hive·hadoop·分布式·zookeeper·kafka
ISU(考研版)5 小时前
从零开始复现 ThinkPHP RCE:Docker + Burp Suite 实战
运维·docker·容器
徒 花5 小时前
Docker在Ubuntu上的安装及配置(基于k8s基础环境配置)
ubuntu·docker·kubernetes