Paxos算法以及ZAB协议

Paxos算法以及ZAB协议


一、Paxos算法

Paxos算法:是基于消息传递而且具有高度容错性的一致性算法
解决的问题:解决如何快速准确的在分布式系统中对某个数据达成一致性,而且保证不管发生什么异常,都不破坏系统一致性
算法流程:
Proposer(提议者)Acceptor(接收者)Learner(学习者)
(每个节点可以由多个身份)

  • Prepare阶段:只发送Proposer ID,没有发送提议内容
    • Proposer向Acceptor发起提议请求promise(承诺)
    • Acceptor对提议请求进行Promise(承诺)
  • Accept阶段:做出两个承诺,一个应答
    • Proposer收到多数的acceptor的承诺之后,向acceptor发送Propose提议请求
    • acceptor对收到的提议请求进行Accept处理
两个承诺:
	1)不再接受 Proposer ID小于等于当前请求的Propose请求
	2)不再接受 Proposer ID小于当前请求的 Accept请求
一个应答:
	1)不违背以前做出的承诺下,回复已经Accept过的提议中Propose ID 最大的哪个提议的ValueProposer ID,没有则返空
  • Learn阶段
    • Proposer将形成的决议发送给所有的Learner

问题:

  • 提议可能出现覆盖,**解决方法:**选举一个leader,leader才可以发送提议
  • 可能陷入活锁:系统存在一个以上的Proposesr,他们相互争夺Acceptor,造成迟迟不能达到一致的情况,**解决方法:**选举一个leader,只有leader可以发送提议

二、ZAB协议

ZAB协议:支持奔溃回复的原子广播协议。两种模式:奔溃恢复(选主)、消息广播(同步)
消息广播:写操作
在这里插入图片描述
崩溃恢复:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、CAP

一个分布式的系统不可能同时具备如下三个特性:

  • Consistency(一致性)
  • Available(可用性)
  • Partition tolerance(分区容错性):在分布式系统遇到任何网络分区故障时,都能够保证对外提供可用、一致性的服务,除非整个网络环境都发送故障
    一般都是CP、AP
    zookeeper保证的是CP:在极端情况下不能保证可用性,需要用户再次请求;Leader选举过程不可用性
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值