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

问题:

二、ZAB协议

ZAB协议:支持奔溃回复的原子广播协议。两种模式:奔溃恢复(选主)、消息广播(同步)
消息广播:写操作

在这里插入图片描述


崩溃恢复:

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述

三、CAP

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

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

相关文章

显卡天梯图2024最新版,显卡是电脑进行图形处理的重要设备,...
初始化电脑时出现问题怎么办,可以使用win系统的安装介质,连...
todesk远程开机怎么设置,两台电脑要在同一局域网内,然后需...
油猴谷歌插件怎么安装,可以通过谷歌应用商店进行安装,需要...
虚拟内存这个名词想必很多人都听说过,我们在使用电脑的时候...
win11本地账户怎么改名?win11很多操作都变了样,用户如果想要...