故障模型
本节目标: 了解分布式系统中的故障并掌握处理故障的相关模型。
故障在分布式系统的世界中是常见的,它们可能以各种形式出现, 有时是偶尔复现, 有时会持续很长时间。
故障模型为我们提供了一个框架来推断故障的影响范围一级可能的处理故障的方法。
下图展示了一系列不同的故障模型:
失败停止 Fail-stop
本故障类型中: 分布式系统中的一个节点永久停止。但其他节点仍然可以通过与该节点通信来检测该节点。
从开发人员的角度看, fail-stop故障模型是最简单/方便进行处理的。
崩溃
本故障类型中: 分布式系统中的一个节点静默停止,其他节点无法检测到该节点已停止工作。
遗漏失败
本故障类型中: 节点无法发送或接收消息。
有两种类型的遗漏故障:
- 节点未能响应传入请求,则称为发送遗漏失败。
- 节点没有收到请求,这被称为接收遗漏失败。
笔者的话: 本故障类型对应 消息丢失/消息未消费等
临时失败
本故障类型中: 节点因为延迟等原因没有及时返回结果。
这种失败可能是由于糟糕的算法、糟糕的设计策略或处理器时钟之间失去同步造成的。
拜占庭失败
本故障类型中: 节点表现出随机行为,例如在任意时间传输任意消息、产生错误结果或中途停止。这主要是由于恶意实体或软件错误的攻击而发生的。拜占庭故障是最具挑战性的故障类型。
笔者的话: 指假如系统的某个模块发生故障, 不能返回正确结果的时候, 如何确保整个系统的准确性.