当前位置: 首页 > 工具软件 > Pax > 使用案例 >

Paxos简介

颜君浩
2023-12-01

一、paxos是什么

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

二、paxos简介

paxos时一个两段协议,分为prepare阶段和accept阶段该协议涉及两个参与角色:proposer(提议提案的服务器)和acceptor(批准提案的服务器)。二者在屋里上可以是同一台机器。

三、prepare阶段

(1)prepare阶段1:proposer发送prepare

proposer生成一个全局唯一,且递增的提案的ID,向paxos集群的所有机器发送请求,这里无须携带提案的内容,之提供提案的ID即可(且把提案ID叫做Pn)

(2)prepare阶段2:acceptor答应prepare

Acceptor收到提案请求后,做出以下约定:

--不再应答 <= Pn的Prepare请求;

--对于 < Pn的请求亦不处理

Acceptor做的处理包括:

--在应答前要在本地持久化当前提案ID

--如果现在请求的ID也就是Pn大于此前存放的proposalID,则做以下逻辑;

If Pn>proposalID then proposalID =pn

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

四、accept阶段

(1)accept阶段1:proposer发送accept

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

(2)accept阶段2:acceptor应答accept

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

 类似资料: