这是我参与「第五届青训营 」伴学笔记创作活动的第9天
一、课程内容
- 分布式概述
- 系统模型
- 理论基础
二、详细知识点
1、分布式系统
分布式系统是计算机程序的集合,这些程序利用跨多个独立计算节点的计算资源来实现共同的目标。可以分为分布式计算、分布式存储、分布式数据库等。
优势
- 去中心化
- 低成本
- 弹性
- 资源共享
- 可靠性高
挑战
- 普遍的节点故障
- 不可靠的网络
- 异构的机器与硬件环境
- 安全
常见的分布式系统:分布式存储、分布式数据库、分布式计算
2、故障模型
值故障
- 拜占庭错误:节点可以任意篡改发送给其他节点的数据
- ADB:拜占庭错误的特例;节点可以篡改数据,但不能伪造其他节点的数据
时间故障
- performance failure
- ommision failure
- crash failure
- fail-stop failure
磁盘故障
CPU故障
3、拜占庭将军问题
在分布式计算中,系统的成员计算机可能出错而发送出错的信息,使得网络中的不同成员关于全体协作的策略得出不同结论,从而破坏系统的一致性。
Q:为何三次握手,而不是两次或四次?
A:两次握手B没法知道A是否接收了自己的同步信号,一旦同步信号丢了,A和B就B的初始序列号无法达成一致。ACK和初始序列号可以同时发送,也不需要四个步骤,因此不是四次握手。
4、共识和一致性
最终一致性
最终一致性是弱一致性的特定形式。在没有后续更新的前提下,系统最终返回上一次更新操作的值。
线性一致性
操作具有一个全局有效时钟的时间戳,但时钟仅具有有限的精确度,时间戳在前的进程先执行。