分布式系统可靠性基础概念解析
1. 分布式系统概述
分布式系统为我们带来了诸多便利。它让资源共享变得轻而易举,像数据存储和处理周期等资源都能更便捷地被使用;即便团队成员分布在全球各地,也能高效地协作完成项目;借助大规模分布式系统的强大计算能力,还能解决极具挑战性的问题。
不过,如果设计不当,分布式系统可能会比单机系统更不可靠。正如 Leslie Lamport 所说:“当一台你从未听说过的计算机崩溃,导致你无法完成任何工作时,你就知道自己拥有一个分布式系统了”。但实际上,只要系统具备足够的冗余,分布式系统可以比单机系统可靠得多,因为即便部分节点出现故障,它仍能继续为用户提供服务。
2. 可靠计算的基本概念和术语
2.1 系统模型
系统的设计目的是为用户(通常称为客户端)提供一系列服务。每个服务都有一个接口,客户端可通过该接口请求服务。系统针对每个服务应执行的操作,依据系统的功能规范被定义为一组函数。系统的状态决定了其运行状况。
在实际情况中,系统状态通常十分复杂。一个系统可能包含一个或多个跨节点的进程,每个进程又可能包含一个或多个线程。系统的状态由这些进程和线程的状态共同决定。进程的状态通常包括寄存器、堆栈、堆、文件描述符和内核状态的值。部分状态可通过系统对用户请求的响应信息呈现给用户,这种状态被称为外部状态,通常是系统功能规范中定义的抽象状态;而用户无法看到的其余状态则被称为内部状态。若系统状态在故障发生前被捕获且未丢失(例如,状态被序列化并写入稳定存储),系统就能恢复到故障前的状态。
从结构上看,系统由一个或多个组件(如节点或进程)组成,并且系统与环境之间存在明确的边界。这里的环境指的是与
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



