ZooKeeper ZAB 协议模式

2019-11-04 17:20:31 浏览数 (2)

ZAB 协议包括两种基本的模式: 崩溃恢复和消息广播

当服务框架在启动中,或是当 Leader 服务器出现网络中断、崩溃退出或重启等异常情况时,ZAB 协议就会进人恢复模式,然后选举产生新的 Leader 服务器。

当选举产生新的 Leader 服务器,同时集群中已经有过半的机器与该 Leader 服务器完成了状态同步,ZAB 协议就会退出恢复模式。其中,所谓的状态同步,是指数据同步,这是用来保证集群中存在过半的机器能够和 Leader 服务器的数据状态保持一致

当集群中已经有过半的 Follower 服务器完成和 Leader 服务器的状态同步,那么整个服务框架就可以进人消息广播模式。 当一台同样遵守 ZAB 协议的服务器启动后并加人到集群中时,如果此时集群中已经存在一个 Leader 服务器在负责进行消息广播,那么新加入的服务器就会自觉地进人数据恢复模式,找到 Leader 所在的服务器,并与其进行数据同步,然后一起参与到消息广播流程中去。

正如之前介绍中所说的,ZooKeeper 设计成只允许唯一的一个 Leader 服务器来进行事务请求的处理。Leader 服务器在接收到客户端的事务请求后,会生成对应的事务提案并发起一轮广播协议,而如果集群中的其他机器接收到客户端的事务请求,那么这些非 Leader 服务器会首先将这个事务请求转发给 Leader 服务器。

0 人点赞