由于本人理解存在局限性和偏面性,以下内容为笔记备忘,如果内容表述不准确,还请指正!!
分布式系统的定义
早期的分步式系统模型是在多路处理器级别上研究的。分布式系统可以总结为:由多个进程组成的系统,进程可以同主机,也可以不同主机。
分布式系统分类
- 基于共享内存
- 基于消息传递
我们通常所说的分布式系统都是指基于消息传递的
分布式系统关注的问题
- 一致性(Consistency)
- 可用性(Availability)
- 分区容错性(Partition tolerance)
分布式系统中的网络模型
同步网络
1. 所有节点的时钟漂移有上限
2. 网络的传输时间有上限,
3. 所有节点的计算速度一样
异步网络
1. 节点的时钟漂移无上限
2. 消息的传输延迟无上限
3. 节点计算的速度不可预料
我们通常在讨论分布式系统时,都是基于异步网络模型讨论的
分布式系统的描述错误的术语
- fault:在系统中某一个步骤偏离正确的执行叫做一个fault
- error:如果一个fault没能在结果影响到整个系统状态之前被修复, 结果导致系统的状态错误, 那么这就是一个error
- failure:如果一个系统的error没能在错误状态传递给其它节点之前被修复, 换句话说error被扩散出去, 这就是一个failure
分布式系统的故障模型
- byzantine failures
- crash-recovery failures
- omission failures
- crash-stop failures
我们通常讨论的分布式系统,是基于以下假设的模型
- 网络模型是异步网络:网络是不可靠的,网络分区是常规现象;
- 故障模型是crash-recovery failures;
分布式系统CAP理论:
ACID理论
BASE理论
Paxos