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

相关推荐
他们叫我阿冠11 小时前
Kafka的基本了解
分布式·kafka
杨某不才11 小时前
内网环境下,使用Docker安装Elasticsearch分词器插件
elasticsearch·docker·jenkins
Amy1870211182311 小时前
分布式光伏并网新规落地在即,一套监控系统如何打通“四可”合规与收益优化的双重关卡?
分布式
开开心心就好11 小时前
无弹窗不更新的PC本地播放工具
运维·科技·macos·docker·计算机外设·ocr·powerpoint
超梦dasgg12 小时前
Java 生产环境分布式定时任务全解(实战落地版)
java·开发语言·分布式
小王师傅6612 小时前
深入解析:Docker在Mac上的运行本质与Linux进程管理机制
linux·macos·docker
wu85877345712 小时前
OpenResty 源站被扫描的排查与防御实战:Cloudflare + DOCKER-USER + Fail2Ban 最全方案解析
docker·容器·openresty
杨某不才12 小时前
内网离线方式Docker安装Elasticsearch
elasticsearch·docker·jenkins
汪小哥13 小时前
kafka 初识
分布式·kafka
Shan120513 小时前
分布式锁的优势与互斥性
分布式