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版本的问题

相关推荐
小智老师PMP1 小时前
2026深度解析|PMP第八版与NPDP核心侧重点本质区别(管理类证书怎么选)
开发语言·分布式·算法·职场和发展·产品经理
Y3815326621 小时前
Docker Compose 服务依赖与健康检查:healthcheck 让容器按正确顺序启动
运维·docker·容器
2601_965235482 小时前
快速了解docker
docker·容器·dubbo
会周易的程序员3 小时前
5Draft(五帝)测试报告
服务器·c++·分布式·raft·共识算法·共识·算力服务器
李昊哲小课3 小时前
Deepin 25 上安装 Docker CE 实战记录
运维·docker·容器·deepin
重生之我来学Python5 小时前
Docker套装的简介、安装、超级详细教程
linux·docker·容器·eureka·github
想要打 Acm 的小周同学呀9 小时前
Kafka消息队列出现挤压如何解决?
分布式·kafka
起名真的太难了9 小时前
Docker 项目部署
docker·容器·eureka
狼与自由9 小时前
docker 安装milvus
docker·milvus
摇滚侠9 小时前
《SpringBoot 3:入门与应用实战》第 14 章 打包与部署 制作 Docker 镜像 阅读笔记 43
spring boot·笔记·docker