【发布时间】:2014-02-18 06:43:14
【问题描述】:
我正在尝试了解 Apache ZooKeeper 在脑裂情况下的内部运作。假设有一个由 5 个服务器组成的集群:A、B、C、D 和 E,其中 A 是领导者。现在假设子集群 {A, B} 与子集群 {C, D, E} 分离。
在这种情况下,子集群 {C, D, E} 可以选举一个新的领导者并且可以取得进展。另一方面,{A, B} 无法取得进展,因为没有大多数节点来确认更新。
我想知道:
老领导 A 怎么了?我预计它会失去领导地位,但这是怎么发生的呢?活跃的领导者有一些定期检查以确保它拥有大多数追随者?
连接到 A 和 B 的客户端会发生什么情况?他们是否会被自动重定向到仍然可以取得进展的服务器之一(C、D 或 E)。或者更确切地说,他们被困在 A 或 B 上,直到裂脑情况得到治愈并重新连接整个集群?
谢谢, 加布里埃尔
【问题讨论】:
标签: apache-zookeeper