5 节点集群最多挂几个?挂了之后已经写入的数据会不会丢?恢复要多久?这篇在 5 节点集群上连续制造 2 个、3 个故障,看服务和数据的变化。
杀掉 follower z31-1 后写入: 成功
再杀 leader z31-3(共 2 个故障,剩 3 个)后:重新选举并恢复写入用时 0.0 s,写入 成功;存活节点: {'z31-2': 'follower', 'z31-4': 'follower', 'z31-5': 'leader'}根下现在的子节点数(含 base 与 200 个 after、zookeeper): 202 | /base 数据: b'v'
剩余节点: {'z31-4': '不服务', 'z31-5': '不服务'} | 写入: 失败(没有多数派)
启动回一个节点(3/5)后恢复写入用时 0.7 s;数据:/base = b'v' | 子节点数 202失去多数派时,存活的节点变成 LOOKING 并拒绝服务,而不是继续提供可能过期的数据——这是 ZooKeeper 偏重一致性的取舍(CP)。