Zookeeper的ZAB协议

ZAB协议
ZAB协议是为分布式协调服务zookeeper专门设计的一种支持崩溃恢复的原子广播协议。具体的,Zookeeper使用一个单一的主进程来接收并处理客户端的所有事务请求,并采用zab的原子广播协议。
针对客户端的事务请求,leader服务器会为其产生对应事务的proposal,将其发送给集群中其余所有的机器,然后再分别收集各自的选票,最后进行事务提交.
在zab二段提交中,意味着我们可以在过半的follower服务器已经反馈过ack之后就开始提交proposal了,而不需要等待集群中所有的follower都反馈响应.
在整个消息广播过程中,Leader服务器会为每个事务请求生成对应的proposal来进行广播,并且在广播事务proposal之前,leader会首先为这个事务的proposal分配一个全局单调递增的唯一id,我们称之为事务id.
在消息广播的过程中,leader服务器会为每一个follower服务器都各自分配一个单独的队列,然后将需要广播的事务proposal依次放入这些队列中去,并且根据fifo进行消息发送.每一个follower在接收到这个事务proposal以后,都会首先将其以事务日志的形式写到本地磁盘中去.

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-09 12:05
点赞 评论 收藏
分享
06-25 09:33
厦门大学 Java
程序员饺子:现在日常估计没啥hc了,等到八月多估计就慢慢有了。双九✌🏻不用焦虑的
投递快手等公司7个岗位
点赞 评论 收藏
分享
人力小鱼姐:实习经历没有什么含金量,咖啡店员迎宾这种就别写了,其他两段包装一下 想找人力相关的话,总结一下个人优势,结合校园经历里有相关性的部分,加一段自我评价
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务