Zookeeper 记录(二)选举机制与异常恢复

一、分布式锁案例分析

a0f70708be114407bf7070bdfc60a76e.png

二、拜占庭将军问题

        拜占庭将军问题是一个协议问题,拜占庭帝国军队的将军们必须全体一致的决定是否攻击某一支敌军。问题是这些将军在地理上是分隔开来的,并且将军中存在叛徒。叛徒可以任意行动以达到以下目标:欺骗某些将军采取进攻行动促成一个不是所有将军都同意的决定,如当将军们不希望进攻时促成进攻     行动或者迷惑某些将军,使他们无法做出决定。如果叛徒达到了这些目的之一,则任何攻击行动的结果都是注定要失败的,只有完全达成一致的努力才能获得胜利。

三、Paxos算法——解决什么问题

Paxos算法:一种基于消息传递且具有高度容错特性的一致性算法

Paxos算法解决的问题:就是如何快速正确的在一个分布式系统中对某个数据值达成一致,并且保证不论发生任何异常, 都不会破坏整个系统的一致性

6f2386a777ad459391e502020a084d8c.png

四、Paxos算法描述:

1、在一个Paxos系统中,首先将所有节点划分为Proposer(提议者),Acceptor(接受者),和

Learner(学习者)。(注意:每个节点都可以身兼数职)。

 e43839c570b94b578c34306d574a630a.png

•一个完整的Paxos算法流程分为三个阶段:
•Prepare准备阶段
        •Proposer向多个Acceptor发出Propose请求Promise(承诺)
        •Acceptor针对收到的Propose请求进行Promise(承诺)
•Accept接受阶段
        •Proposer收到多数Acceptor承诺的Promise后,向Acceptor发出Propose请求
        •Acceptor针对收到的Propose请求进行Accept处理
•Learn学习阶段:Proposer将形成的决议发送给所有Learners

 五、Paxos算法流程893f424cf5f14e3abab1e3ca4aa35f4c.png

(1)Prepare: Proposer生成全局唯一且递增的Proposal ID,向所有Acceptor发送Propose请求,这里无需携带提案内容,只携带Proposal ID即可。
(2)Promise: Acceptor收到Propose请求后,做出“两个承诺,一个应答”。
        不再接受Proposal ID小于等于(注意:这里是<= )当前请求的Propose请求。
        不再接受Proposal ID小于(注意:这里是< )当前请求的Accept请求。
        不违背以前做出的承诺下,回复已经Accept过的提案中Proposal ID最大的那个提案的Value和Proposal ID,没有则返回空值。
(3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值