分布式理论 | 青训营笔记

116 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 9 天

一、目录

本节课主要分为六个部分:

1.分布式理论概述

2.系统模型

3.理论基础

4.分布式事务

5.共识协议

6.分布式实践

二、分布式理论概述

分布式系统:跨多个节点的计算机程序的集合,具有去中心化、低成本、弹性、资源共享、可靠性高等优势。

例子

分布式存储:GFS、Ceph、HDFS、Zookeeper。

分布式数据库:Spanner、TiDB、HBase、MangoDB。

分布式计算:Hadoop、YARN、Spark。

三、系统模型

故障问题:Byzantine failure,Authentication detectable byzantine failure (ADB),Performance failure,Omission failure,Crash failure,Fail-stop failure。

拜占庭将军问题:两将军问题,三将军问题,四将军问题。

四、理论基础

CAP,ACID,BASE。

五、分布式事务

两阶段提交,三阶段提交,MVCC。

六、共识协议

Quorum NWR模型

N:在分布式存储系统中,有多少份备份数据

W:代表一次成功的更新操作要求至少有w份数据写入成功

R: 代表一次成功的读数据操作要求至少有R份数据成功读取

为了保证强一致性,需要保证 W+R > N

Raft协议

Raft协议是一种分布式一致性算法(共识算法),即使出现部分节点故障,网络延时等情况,也不影响各节点,进而提高系统的整体可用性。

Leader:Leader 负责处理所有的客户端请求,并向Follower同步请求日志,当日志同步到大多数节点上后,通知Follower提交日志。

Follower:接受并持久化Leader同步的日志,在Leader告知日志可以提交后,提交日志。

Candidate:Leader选举过程中的临时角色。向其他节点发送请求投票信息。

Log(日志):节点之间同步的信息,以只追加写的方式进行同步,解决了数据被覆盖的问题。

Term(任期号):单调递增,每个Term内最多只有一个Leader。

Committed:日志被复制到多数派节点,即可认为已经被提交。

Applied:日志被应用到本地状态机:执行了log中命令,修改了内存状态。

Paxos协议

可并发修改日志,而Raft写日志操作必须是连续的。

可随机选主,不必最新最全的节点当选Leader。

七、分布式实践

见代码。