分布式缓存 -分布式系统理论 - Paxos

Paxos协议用于解决分布式系统中多个节点达成一致的问题。通过Proposer和Acceptor两个角色及Prepare、Accept两个阶段确保一致性。Prepare阶段Proposer发送请求获取提案ID,Acceptor持久化并反馈已接受的最大提案ID。Accept阶段Proposer发起提案,Acceptor持久化提案内容。
摘要由CSDN通过智能技术生成

一. Paxos简介

 
Paxos协议是一个解决分布式系统中,多个节点之间就某个值(提案)达成一致(协议)的通信协议。它能够处理在少数节点离线的情况下,剩余的多数节点仍能够达成一致

大佬写的流程 - 详细
大佬写的流程

 
Paxos协议是一个两阶段协议,分为 Prepare 阶段和 Accept 阶段。涉及两个参与者角色,ProposerAcceptor。其中Proposer是提议提案的服务器,而Acceptor是批准提案的服务器。二者在物理上可以是同一个服务器
 

二. prepare阶段

 

2.1 prepare阶段1:Proposer发送Prepare

Proposer生成全剧唯一且递增的提案ID,并向Paxos集群的所有机器发送请求,这里无需携带提案内容,只携带提案ID即可 (也有一种说法ID其实代表版本version),且把提案id叫做Pn

在这里插入图片描述

 

2.2 Prepare阶段2:Acceptor应答Prepare

 
Acceptor收到提案请求后,作出以下约定:
(1)不再应答 <= Pn的 Prepare 请求
(2)对于 < Pn 的 Accept 请求亦不处理

 
Acceptor做的处理包括:
(1)应答前要在本地持久化当前提案ID;
(2)如果现在请求的提案ID - Pn 大于此前存放的proposalID,则作出以下逻辑

if Pn > proposalID
then proposalID = Pn

如果该Acceptor Accept过的提案,则返回提案中proposalID最大的那个提案的内容,否则返回空值

在这里插入图片描述

三. Accept阶段

 

3.1 Accept阶段一:Proposer发送Accept

Proposer收集到多数派应答Prepare阶段的返回值后(这里的多数派,指超过n/2+1,n是集群数),从中选择 proposalID最大的提案内容,作为要发起Accept的提案,如果这个提案为空值,则可以自己随意决定提案内容,然后携带上当前proposalID,向Paxos集群的所有机器发送Accept请求

在这里插入图片描述

 

3.2 Accept阶段二:Acceptor 应答 Accept

Acceptor 收到 Accept请求后,检查不违背自己之前作出约定的情况下,持久化当前 proposal ID 和 提案内容。最后 Proposer收集到多数派应答的Accept回复后,形成决议

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值