ZooKeeper集群里有三种角色的机器 Leader、Follower、Observer
集群启动后会自动选举出来一个Leader,只有Leader是可以进行写操作的。Follower只能进行数据同步和提供数据的读取。Observer也可以提供读操作但是不能参与选举。假如Leader挂掉Follower可以继续选举出来新的Leader。
Leader:事务请求的唯一处理者。
Follower:可以直接处理客户端的读请求,并响应;对客户端的处理事务请求,会转发给Leader来处理;参与数据同步过半机制。
Observe:节点不参与Leader选举,也不参与ZAB协议同步时过半follower ack环节。是能同步数据,但是不能够保证数据的一致性问题(可能会有延迟)。
Observe节点应用场景
1.提高zk的读请求并发量(可以多扩展机器,提高读的并发量)
zk集群只能有一个Leader可以做写请求,集群的写请求并发量只能依靠单机。zk适合写少的场景。