这是我参与「第五届青训营」伴学笔记创作活动的第 8 天
重点:
1.概述
优点:
a.去中心化
b.低成本
c.弹性
d.资源共享
e.可靠性高
挑战:
a.普遍的节点故障
b.不可靠的网络
c.异构的机器与硬件环境
d.安全
2.系统模型
拜占庭故障:节点可以任意篡改发送给其他节点的数据
拜占庭将军问题:两方需要达成共识,类似于TCP
3.理论基础
CAP理论:一致性【Consistence】;可用性【Availability】;分区容错性【network partitioning】
ACID理论:原子性【Atomicity】;一致性【Consistency】;隔离性【Isolation】;持久性【Durability】
BASE理论:基本可用【Basically available】;软状态【Soft State】;Eventually consistency【最终一致性】
4.分布式事务
两阶段提交【prepare-commit】:为了使基于分布式系统架构下的所有节点在进行事务提交时保持事务提交一致性而设计的一种演算法;
三阶段提交【CanCommit-PreCommit-DoCommit】:解决了单个故障问题,阻塞问题
锁的概念:悲观锁:真的锁;乐观锁:版本号进行判断
MVCC:维持一个数据的多版本使得读写操作没有冲突。及不会阻塞写,也不阻塞读。MVCC为每个修改保存一个版本,和事务的时间戳相关联。可以解决脏读问题。将时间进行切片,每个切片为时间戳单位
5.共识协议
Quorum NWR模型:N:分布式存储系统中,有多少份备份数据;W:更新一次数据要求至少W份数据写入成功;R读取一次数据要求至少R份数据成功读取。保证强一致性:W+R>N
RAFT协议:分布式一致性算法,及时部分节点故障,网络延时等情况,也不影响各个节点,进而提高系统的整体可用性;RAFT也使用了Quorum机制。
Leader;Follower;Candidate
Paxos协议:与RAFT的算法区别:1.Multi-Paxos可以并发修改日志,而RAFT写日志操作必须是连续的;2.Multi-Paxos可以随机选主,不必最新最全的节点当选leader
6.分布式实践