在 ZooKeeper 集群中,Follower 和 Observer 都是用来处理客户端读请求并同步 Leader 数据的角色,但它们在投票权和对写性能的影响上有本质的区别。 简单来说:Observer 是没有投票权的 Follower。 以下是详细的区别对比: 1. 核心区别:投票权 (Voting Rights) 这是两者最根本的区别。ZooKeeper 使用 ZAB 协议(ZooKeeper Atomic Broadcast)来保证数据一致性,这涉及到两个场景的投票: Follower:拥有投票权。 写请求投票: 当 Leader 收到写请求(Proposal)时,Follower 会参与投票。只有收到半数以上(Quorum)节点的 ACK,Leader 才会提交该事务。 选举投票: 当 Leader 挂掉时,Follower 会参与新 Leader 的选举投票。 Observer:没有投票权。 它不参与写请求的“过半数”确认过程。 它不参与 Leader 的选举过程。 它仅仅是“观察” Leader 的状态,并接收 Leader 发送的 消息来同步数据。 2. 对写性能...