微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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选举过程不可用性

原文地址:https://www.jb51.cc/wenti/3281336.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐