- 分布式抽象的必要性 1.1 任何分布式系统的核心都是分布式算法 作为网络(系统)与应用的中间件实现。
系统的通道 <——-> 系统的通道 中间件的算法 中间件的算法 应用 应用 1.2 可靠的应用需要比网络协议(e.g. TCP,UDP)更强大的底层服务 1.2.1 通信 只能为一对一通信(客户端-服务端)提供可靠性保证(比如TCP) 如何做到组通信? 可靠广播 Reliable Broadcast
因果顺序广播 Causal order Broadcast
全序广播 Total order Broadcast
1.2.2 高层服务 有时,多对多通讯是不够的 需要可靠的高层服务 共享内存
共识(Consensus, 不是Consistency)
原子性提交
复制状态机
1.3 举例 ①. 可靠广播 确保发送至组的信息要么被所有成员收到要么没有一个成员收到
②. 原子性提交 确保各进程就是否提交或终止事务(Transaction)达成一致决定。(既确保状态一致)
- 基于事件的组件模型 2.1 分布式计算模型 一组进程与一个网络(通讯连接) 单一进程执行单一本地算法(程序) 每个进程都会进行计算步骤 网络进行计算步骤: 存储进程发送的消息 传递消息给某一进程 消息传递时会在接收过程中触发一个计算步骤 2.1.1 一个进程的计算步骤 接收一个消息(外部,输入) 执行本地计算 发送一个或多个消息给其他一些进程(外部,输出) 2.1.2 通信步骤 基于网络抽象 收到来自一个进程的消息,或者 发送一个消息给一个进程 2.2 进程内部 一个进程包括一组组件(自动机) 组件都是并行的 每个组件通过一个FIFO输入缓冲接收消息 发送消息给其他组件 事件是同一进程内不同组件间的消息 事件被称为事件处理者(Event Handler)的程序(行动)处理 2.