Paxos-->Fast Paxos-->Zookeeper分析

一 Paxos 算法

1.1 基本定义

算法中的参与者主要分为三个角色,同时每个参与者又可兼领多个角色:

⑴、proposer 提出提案,提案信息包括提案编号和提议的value;

⑵、acceptor 收到提案后可以接受(accept)提案;

⑶、learner 只能"学习"被批准的提案;

算法保重一致性的基本语义:

⑴、决议(value)只有在被proposers提出后才能被批准(未经批准的决议称为"提案(proposal)");

⑵、在一次Paxos算法的执行实例中,只批准(chosen)一个value;

⑶、learners只能获得被批准(chosen)的value;

有上面的三个语义可演化为四个约束:

⑴、P1: 一个acceptor必须接受(accept)第一次收到的提案;

⑵、P2a:一旦一个具有value v的提案被批准(chosen),那么之后任何acceptor 再次接受(accept)的提案必须具有value v;

⑶、P2b:一旦一个具有value v的提案被批准(chosen),那么之后任何 proposer 提出的提案必须具有value v;

⑷、P2c:如果一个编号为n的提案具有value v,那么存在一个多数派,要么他们中所有人都没有接受(accept)编号小于n的任何提案,要么他们已经接受(accpet)的所有编号小于n的提案中编号最大的那个提案具有value v;

1.2 基本算法(basic paxos)

算法(决议的提出与批准)主要分为两个阶段:

1. prepare阶段:

(1). 当Porposer希望提出方案V1,首先发出prepare请求至大多数Acceptor。Prepare请求内容为序列号<SN1>;

(2). 当Acceptor接收到prepare请求<SN1>时,检查自身上次回复过的prepare请求<SN2>

    a). 如果SN2>SN1,则忽略此请求,直接结束本次批准过程;

    
  • 2
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
Zookeeper是一个分布式应用程序协调服务,它提供了一个分布式锁、分布式队列等基本的分布式协作功能。而Paxos算法则是分布式系统中的一种经典算法,主要用于保证分布式系统的一致性。Zookeeper基于Paxos算法实现了分布式锁和分布式队列等功能。 Paxos算法主要解决的问题是分布式系统中的一致性问题。在分布式系统中,由于网络通信的延迟、节点宕机等原因,可能会导致数据的不一致性。Paxos算法通过选举一个Leader节点来协调各个节点的操作,从而保证系统的一致性。 Paxos算法主要分为三个阶段:提议、批准和执行。在提议阶段,一个节点向其他节点提议一个值;在批准阶段,如果超过半数节点同意了这个值,那么这个值就被批准了;在执行阶段,Leader节点将这个值发送给所有节点,让它们执行。 Zookeeper在实现分布式锁和分布式队列等功能时,也是基于这个流程实现的。当一个进程需要获取锁时,它会向Zookeeper服务发送一个请求,Zookeeper会选举一个Leader节点来处理这个请求。当一个进程需要使用队列时,它会向Zookeeper服务发送一个请求,Zookeeper会将这个请求放入队列中,并选举一个Leader节点来执行这个请求。 总之,Zookeeper是一个分布式应用程序协调服务,它提供了一些基本的分布式协作功能。而Paxos算法则是保证分布式系统一致性的经典算法,Zookeeper基于Paxos算法实现了分布式锁和分布式队列等功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值