草庐IT

12.0 Zookeeper 数据同步流程

在Zookeeper中,主要依赖ZAB协议来实现分布式数据一致性。ZAB协议分为两部分:消息广播崩溃恢复消息广播Zookeeper使用单一的主进程Leader来接收和处理客户端所有事务请求,并采用ZAB协议的原子广播协议,将事务请求以Proposal提议广播到所有Follower节点,当集群中有过半的Follower服务器进行正确的ACK反馈,那么Leader就会再次向所有的Follower服务器发送commit消息,将此次提案进行提交。这个过程可以简称为2pc事务提交,整个流程可以参考下图,注意Observer节点只负责同步Leader数据,不参与2PC数据同步过程。崩溃恢复在正常情况消息广

12.0 Zookeeper 数据同步流程

在Zookeeper中,主要依赖ZAB协议来实现分布式数据一致性。ZAB协议分为两部分:消息广播崩溃恢复消息广播Zookeeper使用单一的主进程Leader来接收和处理客户端所有事务请求,并采用ZAB协议的原子广播协议,将事务请求以Proposal提议广播到所有Follower节点,当集群中有过半的Follower服务器进行正确的ACK反馈,那么Leader就会再次向所有的Follower服务器发送commit消息,将此次提案进行提交。这个过程可以简称为2pc事务提交,整个流程可以参考下图,注意Observer节点只负责同步Leader数据,不参与2PC数据同步过程。崩溃恢复在正常情况消息广

13.0 Zookeeper Leader 选举原理

zookeeper的leader选举存在两个阶段,一个是服务器启动时leader选举,另一个是运行过程中leader服务器宕机。在分析选举原理前,先介绍几个重要的参数。服务器ID(myid):编号越大在选举算法中权重越大事务ID(zxid):值越大说明数据越新,权重越大逻辑时钟(epoch-logicalclock):同一轮投票过程中的逻辑时钟值是相同的,每投完一次值会增加选举状态:LOOKING:竞选状态FOLLOWING:随从状态,同步leader状态,参与投票OBSERVING:观察状态,同步leader状态,不参与投票LEADING:领导者状态1、服务器启动时的leader选举每个节点

13.0 Zookeeper Leader 选举原理

zookeeper的leader选举存在两个阶段,一个是服务器启动时leader选举,另一个是运行过程中leader服务器宕机。在分析选举原理前,先介绍几个重要的参数。服务器ID(myid):编号越大在选举算法中权重越大事务ID(zxid):值越大说明数据越新,权重越大逻辑时钟(epoch-logicalclock):同一轮投票过程中的逻辑时钟值是相同的,每投完一次值会增加选举状态:LOOKING:竞选状态FOLLOWING:随从状态,同步leader状态,参与投票OBSERVING:观察状态,同步leader状态,不参与投票LEADING:领导者状态1、服务器启动时的leader选举每个节点