Zookeeper(六)基于 docker-compose 安装 Zookeeper 集群

Zookeeper 部署方式:

Zookeeper 部署有三种方式,单机模式、集群模式、伪集群模式。

  • 单机模式:存在单点故障
  • 集群模式:在多台机器上部署 Zookeeper 集群,适合线上环境使用。
  • 伪集群模式:在一台机器同时运行多个 Zookeeper 实例,仍然有单点故障问题,当然,其中配置的端口号要错开的,适合实验环境模拟集群使用。

注意:
集群为大于等于3个奇数,如 3、5、7,不宜太多,集群机器多了选举和数据同步耗时长,不稳定

使用集群模式安装Zookeeper。

由于是docker,所以并不是伪集群
docker-compose.yml

version: '3.1'
services:
    zoo1:
        image: zookeeper:3.4.13
        restart: always
        hostname: zoo1
        ports:
            - 2181:2181
        environment:
            ZOO_MY_ID: 1
            ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888

    zoo2:
        image: zookeeper:3.4.13
        restart: always
        hostname: zoo2
        ports:
            - 2182:2181
        environment:
            ZOO_MY_ID: 2
            ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888

    zoo3:
        image: zookeeper:3.4.13
        restart: always
        hostname: zoo3
        ports:
            - 2183:2181
        environment:
            ZOO_MY_ID: 3
            ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888

选举:根据最新事务 ID(ZXID)来选举,谁最大,谁当leader。理论上如此。so,直接测试一下第三个服务是不是leader?

启动

docker-compose up -d

交互式进入容器

docker exec -it zookeeper_zoo3_1 /bin/bash
./bin/zkServer.sh status

然后出问题了,这是个大坑。fuck。因为用的是最新版本,建议使用3.4.13或者3.4.14
在这里插入图片描述
尝试解决这个bug,最终选择了沉默。降版本号为3.4.14
在这里插入图片描述
猜想错误,服务3并不是leader,测试一下,其他两台
在这里插入图片描述
服务1也是follow,故服务2为leader
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值