Java 后端面试题库 / 全部题解免费阅读理解原理,有条理地回答

ZooKeeper 集群为什么通常至少三台?

查看完整题解

参考回答

直接回答

要在一台投票机故障时继续写入,通常至少要三台投票成员。以默认多数派计算,三台要两票,两台也要两票,因此两台掉一台就没法继续写。

讲清原理

N 个投票成员需要超过一半,票数是 floor(N/2)+1。三台和四台都只容忍失去一台,五台可以失去两台。Observer 不参加投票,不计入这个 N。

例子与易错点

五票分成 3 和 2 两边,三票那侧凑得齐多数。两票那侧即使彼此能连通,也无法独立提交。

延伸阅读 ZooKeeper 有哪些常见部署模式? · ZooKeeper 怎么防止两边同时提交?

这道题,你掌握得怎么样?

掌握程度由你主动标记,阅读和收藏不会自动改变状态。