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

ZooKeeper 里的脑裂指什么?

查看完整题解

参考回答

直接回答

脑裂指集群被分成互不相通的几组后,两边都把自己当作权威,并各自接收会造成冲突的修改。对 ZooKeeper 来说,关键是旧 Leader 能否继续提交。

讲清原理

某些瞬间旧 Leader 还没发现失去联系,日志里可能同时看到两个节点自认 Leader。只要只有一边拥有法定人数,并按协议推进轮次,丢了法定人数的一边就不能独立提交新事务。

例子与易错点

五台被分成两台和三台,旧 Leader 刚好在两台成员的那一侧。看服务是否可写要结合投票数和实际提交结果,单看本机角色日志会误判。

延伸阅读 从 CAP 角度看,ZooKeeper 如何处理网络分区? · 什么情况会让 ZooKeeper 看起来发生脑裂? · ZooKeeper 怎么防止两边同时提交?

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

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