问个zookeeper脑裂问题

假设有个9台服务器的zookeeper集群
a b c d e f g h i,一开始a是leader,然后因为网络问题,分裂成三部分,
(a b)
(c d)
(e f g h i)
这时候(e f g h i)这组应该会重新选出一个leader,然后通知客户端吧,那此时(a b)
(c d)这两组是处于什么状态?然后如果网络都恢复了,这9个节点又会怎么处理

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7620925
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:zookeeper重要知识点
  • 除此之外, 这篇博客: zookeeper集群迁移(扩容)详解中的 步骤10.3:下线zookeeper老集群中的节点3 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    关闭node3: {zookeeperDir}/bin/zkServer.sh stop

    依次修改node4,5,6的配置,并且重启,配置如下:

    # 省略其他配置
    dataDir=/data
    server.4=node4:2888:3888
    server.5=node5:2888:3888
    server.6=node6:2888:3888
    

    重启后检查所有节点是否提供服务,且集群中只有一个leader。
    ps:这时候如果没有读写zookeeper操作,node5将成为最终的leader


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^