美文网首页
zk 三个节点的情况下,挂掉节点会发生什么?

zk 三个节点的情况下,挂掉节点会发生什么?

作者: 云中人山 | 来源:发表于2019-03-18 22:05 被阅读0次

    RT
    现在准备做一个实验
    现有三个节点,其中GP-1,GP-2为follower,GP-3为leader


    高配1.png
    高配2.png
    高配3.png

    关闭一个follower节点

    先用ls /命令 查看当前存在的节点

    原始节点.png

    现将GP-2中的zk关闭
    此时在GP3上创建一个新的节点 create /zk "nodetest"

    创建新节点.png

    此时的GP-1中,新创建的节点被同步了,如下图所示


    GP-1同步节点后状态.png

    此时的GP-1还是follwer,而Gp3还是leader


    关闭leader节点

    首先我们将Gp-2重新启动,恢复现场
    此时还是一样 Gp-1 GP-2是follower GP3是leader

    然后我们将GP3关闭


    关闭GP3.png

    而后,发现GP-2变成了leader


    GP-2变为leader.png

    然后我们在刚才的zk节点下新建一个子节点


    新建子节点.png

    最后发现同步到GP-1了


    同步到Gp-1.png

    (by the way,在此时关闭Gp-1,只剩一个节点时,GP-2直接报拒绝连接 (Connection refused) zk服务就不可用了)


    只有两个节点直接启动

    最后我们来实验只有两个节点同时启动的情况下
    一开始会报路由错误,即CP3没有启动


    image.png

    然而,过了一会会,GP2变成leader了。。。。

    Gp2变为leader.png

    综上,并不是说两个节点不能够使用,而是两个节点的情况下,只有收到半数以上节点的成功反馈就变成了只有收到全部节点的成功反馈,如果再挂掉一个就系统不可用
    另外,网上说偶数个节点还是可能出现票数相同的情况,但根据zk的选举机制来看,概率很低
    如果要出现偶数个节点票数相同的话,意味着有两个节点myId也是一样的,这其实应该是不可能的

    相关文章

      网友评论

          本文标题:zk 三个节点的情况下,挂掉节点会发生什么?

          本文链接:https://www.haomeiwen.com/subject/tsdimqtx.html