分布式理论 | 青训营笔记

88 阅读2分钟

分布式理论 | 青训营笔记

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

分布式概述

分布式系统是计算机程序的集合,这些程序利用跨多个独立计算节点的计算资源来实现共同的目标。可以分为分布式计算、分布式存储、分布式数据库等。

分布式计算技术:Hadoop、Spark、YARN

分布式存储技术:GFS、Ceph、Hadoop HDFS、Zookeeper

分布式数据库技术:Google Spanner、TiDB、HBase、MongoDB

系统模型

拜占庭将军问题证明了当有 3m+13m+1 个将军,其中 mm 个叛徒,可以增加 mm 轮协商,最终达成一致。

最终一致性:客户端 A 读到 x=0,当客户端 C 正在写入时,客户端 A 和 B 可能读到 0 或 1。但是当 C 写入完成后,A和B最终能读到一致的数据。

线性一致性:当客户端A读到更新的版本x=1后,及时将消息同步给其他客户端,这样其他客户端立即能获取到x=1。

理论基础

CAP理论:在网络发生分区的情况下,我们必须在可用性和一致性之间做出选择。近似解决方法:把故障节点的负载转移到备用节点负责。

ACID理论:原子性、一致性、隔离性、持久性。

BASE理论

  • Basically Available(基本可用):假设系统出现了不可预知的故障,但还是能用,相比较正常的系统而言: 响应时间上的损失或功能上的损失
  • Soft state(软状态):允许系统中的数据存在中间状态,并认为该状态不影响系统的整体可用性,即允许系统在多个不同节点的数据副本存在数据延时。
  • Eventually consistent(最终一致性): 系统能够保证在没有其他新的更新操作的情况下,数据最终一定能够达到一致的状态,因此所有客户端对系统的数据访问最终都能够获取到最新的值。

分布式事务

三阶段提交两阶段提交中的 Prepare 阶段,拆成两部分: CanCommit 和 PreCommit,可以解决单点故障问题和阻塞问题。

共识协议

Quorum NWR模型:

  • N: 在分布式存储系统中,有多少份备份数据
  • W: 代表一次成功的更新操作要求至少有w份数据写入成功
  • R: 代表一次成功的读数据操作要求至少有R份数据成功读取

为了保证强一致性,需要保证 W+R>N,Quorum NWR模型将CAP的选择交给用户,是一种简化版的一致性模型。

Raft协议 & Paxcs协议

分布式实践

MapReduce

image.png

分布式KV

image.png