注册不上zookeeper无报错_Zookeeper 跨区高可用方案

最近由于业务需求,测试各种组件的高可用性。由于我们的环境在AWS 北京部署。只有两个Aviable Zone(可用区)。

注释:有两个数据中心,相互需要做容灾的需求,和本文测试的情况是相同的。

而Zookeeper需要3个以上的单数节点同时工作,并且,必须保证半数以上的节点存活,还能正常提供服务。

那么,针对只有两个AZ的情况,不管怎么规划,都有概率遇到存在半数以上的AZ挂掉,导致整个Zookeeper不可用的情况。

所以,我们能做的就是,在这个AZ挂掉之后,我们怎么尽快处理,并恢复环境。

我们准备两个软件安装好,参数配置好的机器。在可用区1完全挂掉之后,可以手动启动两个备用节点。将可用区2的Zookeeper数量增加过半数。就可以在可用区2恢复Zookeeper的服务。

参考下图:

以上的设想,是否能实现呢?

那我们今天就来测试一下。

1. 一共准备了5台机器,作为测试

2. Zookeeper的下载与安装。

2.1 Zookeeper官方下载地址

2.2 下载软件

2.3 详细Zookeeper安装步骤,请参考:

2.4 zoo.cfg的配置

#cat zoo.cfgtickTime=2000

initLimit=10

syncLimit=5

dataDir=/data/zookeeper/data

dataLogDir=/data/zookeeper/log

clientPort=2181

autopurge.snapRetainCount=3

autopurge.purgeInterval=6

server.1=172.31.9.73:2888:3888

server.2=172.31.20.233:2888:3888

server.3=172.31.26.111:2888:3888

server.4=172.31.17.68:2888:3888

server.5=172.31.16.33:2888:3888

2.5  根据zoo.cfg创建data和log两个文件夹mkdir -p /data/zookeeper/data

mkdir -p /data/zookeeper/log

2.6 根据节点号码,修改文件echo 1 > /data/zookeeper/data/myid

3. 一共准备了5台EC2进行测试,并且都已经安装好Zookeeper

但是只启动三台,另两个机器作为standby

下图可以看到,已经有三台启动zookeeper,

注意,在Zookeeper启动的过程中,必须保证三台及以上,zookeeper集群才能正常工作

4. 接下来,我开始逐个机器关机,看zookeeper的状态

当前leader在zk3上,我们先关闭zk1,再关闭zk3,看Leader会不会飘到zk2上

4.1 在zk1上执行kill,杀掉进程[root@ip-172-31-9-73 ~]# jps

12438 Jps

7545 QuorumPeerMain

[root@ip-172-31-9-73 ~]# zkServer.sh status

ZooKeeper JMX enabled by default

Using config: /root/zookeeper-3.4.14/bin/../conf/zoo.cfg

Mode: follower

[root@ip-172-31-9-73 ~]# kill -9 7545

4.2 在zk5上通过zkCli链接zk3,并可以查询数据。

在zk1上kill掉进程之后,理论上,还有zk2和zk3存活,但是zkCli的连接显示已经报错。[root@ip-172-31-16-33 bin]# ./zkCli.sh -server 172.31.26.111:2181

Connecting to 172.31.26.111:2181

......

[zk: 172.31.26.111:2181(CONNECTED) 0] ls /

[zk-permanent, zookeeper, test]

[zk: 172.31.26.111:2181(CONNECTED) 1] 2019-06-23 07:28:06,581 [myid:] - INFO  [

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值