分布式理论基础 | 青训营笔记

79 阅读2分钟

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

一、课程内容

  • 分布式概述
  • 系统模型
  • 理论基础

二、详细知识点

1、分布式系统

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

优势

  1. 去中心化
  2. 低成本
  3. 弹性
  4. 资源共享
  5. 可靠性高

挑战

  1. 普遍的节点故障
  2. 不可靠的网络
  3. 异构的机器与硬件环境
  4. 安全

常见的分布式系统:分布式存储、分布式数据库、分布式计算

2、故障模型

值故障

  • 拜占庭错误:节点可以任意篡改发送给其他节点的数据
  • ADB:拜占庭错误的特例;节点可以篡改数据,但不能伪造其他节点的数据

时间故障

  • performance failure
  • ommision failure
  • crash failure
  • fail-stop failure

磁盘故障

CPU故障

3、拜占庭将军问题

在分布式计算中,系统的成员计算机可能出错而发送出错的信息,使得网络中的不同成员关于全体协作的策略得出不同结论,从而破坏系统的一致性。

Q:为何三次握手,而不是两次或四次?

A:两次握手B没法知道A是否接收了自己的同步信号,一旦同步信号丢了,A和B就B的初始序列号无法达成一致。ACK和初始序列号可以同时发送,也不需要四个步骤,因此不是四次握手。

4、共识和一致性

最终一致性

最终一致性是弱一致性的特定形式。在没有后续更新的前提下,系统最终返回上一次更新操作的值。

线性一致性

操作具有一个全局有效时钟的时间戳,但时钟仅具有有限的精确度,时间戳在前的进程先执行。