云环境中的并发与负载均衡技术解析
1. 分布式共识算法 Paxos 原理
Paxos 算法是分布式系统中实现共识的重要算法,其工作分为多个阶段。
提议承诺阶段
- 接受者(Acceptor)需记录其曾接受的最高编号提议以及曾响应的最高编号提议。
- 接受者只有在未响应过编号大于 k 的准备请求时,才能接受编号为 pn = k 的提议;若已响应过编号大于 k 的准备请求,则不应再回复。丢失的消息被视为接受者选择不响应。
第二阶段
- 接受请求 :若多数接受者响应,提议者(Proposer)按以下规则选择提议的值 v:
- 从所有响应中选取最高编号提议的值 v。
- 若没有提议者发出提议,则选择任意值。
- 提议者向一组接受者发送包含 (pn = k, v) 的接受请求消息。
- 接受 :接受者收到编号为 pn = k 的接受消息时,仅当未承诺考虑编号大于 k 的提议时才接受该提议。接受提议后,应记录值 v,并向提议者和每个学习者(Learner)发送接受消息;若不接受,则忽略该请求。
该算法的正确性依赖于以下重要属性:
- 提议编号唯一。
- 任意两组接受者至少有一个共同的接受者。
- 算法第二阶段发出的值是第一阶段所有响应中编号最高的提议的值。
Paxos 算法定义了三个安全属性:
| 属性
超级会员免费看
订阅专栏 解锁全文
1177

被折叠的 条评论
为什么被折叠?



