Paxos协议

背景

该协议是解决分布式数据一致性的问题,使得多个节点上对于某个提案达成一致。

协议交互过程

协议包含三个角色

1 提案发起者 Proposer

2 接受者 Accepter

3 学习者 learner

协议分为两个阶段

阶段一:prepare

1 发起者向接受者发送prepare 请求,带上提案的版本号n,提案的值为v, 这个版本号是全局唯一,可以用时间戳加上节点编号超时。

2 接受者接到请求

  A 如果版本号比之前批准的版本号小,则拒绝处理,结束本次批准过程。

  B 从已处理的请求中找出上一次批准的版本号和提案的值。如果是首次则返回ok

阶段二: accept

1 提案者接受到接受者返回的预处理响应,主要有以下几种情况

  A 回复数量符合多数派,均返回ok,那么说明认可这个提案,接着可以发起accept 指令,提案版本为n,值为v

B 回复数量符合多数派,到返回的数据有不同的版本和值。那么需要统计出超过半数的那个版本和值x, 接着再以版本为n,值为x向接受者发起accept请求。如果这时的返回值符合多数派则提案成功,否则将提案的版本加一,在从prepare 阶段重新开始。

C 回复的数量不符合多数派,那么版本号加一,从prepare阶段重新开始。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问题: 基于消息传递通信模型的分布式系统,不可避免的会发生以下错误:进程可能会慢、被杀死或者重启,消息可能会延迟、...
    LaxChan阅读 6,052评论 6 1
  • 转自:Paxos协议超级详细解释+简单实例 转自:架构师需要了解的Paxos原理、历程及实战 转自:Paxos--...
    晴天哥_王志阅读 10,509评论 2 2
  • 协议由来 是一个叫莱斯利.兰伯特的牛人提出的一种基于消息传递且具有高度容错特性的一致性算法,是目前公认的的解决分布...
    程序员驿站阅读 3,388评论 0 0
  • 协议解决的问题 paxos解决了分布式系统就某一个值达成一致的问题。下面就分布式系统中选主来介绍paxos协议过程...
    zyhuttp阅读 7,286评论 1 1
  • 此文知识来自于:《从Paxos到Zookeeper分布式一致性原理与实践》第二章分布式入门基础知识,由于博主对其理...
    李文文丶阅读 5,990评论 0 0