第二部分 分布式系统
没有分布式系统,我们将无法拨打电话、转账或远距离交换信息。我们每天都在使用分布式系统。有时候,即使没有明确说明,任何客户端/服务器架构的应用程序其实都是分布式系统。
对于许多现代软件系统,垂直扩展(将软件运行在更大更快的机器上,配备更多的CPU、RAM或更快的磁盘)是不现实的。更大的机器也更贵,更难以置换,而且可能需要特殊的维护。一个替代选项是水平扩展:将软件运行在多个用网络相连的机器上,而在逻辑上视为单个实体。
分布式系统有各种规模,少则几台机器,多则上百台机器。系统参与者的特性也各不相同,可以是手持式或传感器设备,也可能是高性能计算机。
数据库系统运行在单个节点上的时代已经过去很久了,大多数现代数据库系统拥有多个以集群方式相互连接的节点,以增加存储容量、提升性能和增强可用性。
尽管某些分布式计算的理论突破不是新生事物,但大部分的实际应用还是在近期才出现的。今天,这一主题越来越受到人们的关注,我们也看到更多的相关研究与新的发展正在进行。
-
第二部分基本定义
分布式系统有若干个参与者(participant,有时也称为进程、节点或副本),每个参与者都有其自己的本地状态。参与者通过在通信链路上交换消息来进行彼此间的通信。
进程可以用时钟来获取时