这是我参与「第五届青训营 」伴学笔记创作活动的第 8 天
一、本堂课重点内容:
本堂课主要是讲述了分布式的相关概念。
二、分布式概述
分布式系统是计算机程序的集合,这些程序利用跨多个独立计算节点的计算资源来实现共同的目标。可以分为分布式计算、分布式存储、分布式数据库等。
优势:
- 去中心化
- 低成本
- 弹性
- 资源共享
- 可靠性高
挑战:
- 普遍的节点故障
- 不可靠的网络
- 异构的机器与硬件环境
- 安全
三、系统模型
故障模型:
-
Byzantine failure:节点可以任意篡改发送给其他节点的数据
-
Authentication detectable byzantine failure
(ADB):Byzantine failure的特例;节点可以篡改数据,但不能伪造其他节点的数据
-
Performance failure:节点未在特定时间段内收到数据,即时间太早或太晚
-
Omission failure:节点收到数据的时间无限晚,即收不到数据
-
Crash failure:在omission failure的基础上,增加了节点停止响应的假设,也即持续性地omission failure
-
Fail-stop failure:在Crash failure的基础上增加了错误可检测的假设
四、理论基础
CAP理论
C:一致性,指数据在多个副本之间能够保持一致的特性(严格的一致性)。
A:可用性,指系统提供的服务必须一直处于可用的状态,每次请求都能获取到非错的响应———但是不保证获取的数据为最新数据。
P:分区容错性,分布式系统在遇到任何网络分区故障的时候,仍然能够对外提供满足一致性和可用性的服务,除非整个网络环境都发生了故障。
五、分布式事务
二阶段提交(Two-phase Commit):为了使基于分布式系统架构下的所有节点在进行事务提交时保持一致性而设计的一种演算法。
三个假设:
- 引入协调者(Coordinator)和参与者(Participants),互相进行网络通信
- 所有节点都采用预写式日志,且日志被写入后即被保持在可靠的存储设备上
- 所有节点不会永久性损坏,即使损坏后仍然可以恢复
六、共识协议
Quorum NWR协议 :是一种简化版的一致性模型
RAFT协议:保证了出现部分节点故障,也不会影响各节点
七、课后人个总结
通过今天的学习我了解到了分布式理论,同时通过分布式实践一节对所学内容有了更深得了解。