Centralized System 中,绝大部分功能都在一台物理机器上完成。最开始连客户端也在同一台机器上,后来逐渐演化成 C/S 模型。
Distributed
Distributed System 中,不同计算机通过合作的方式完成一项任务。早期以同机房下的多台机器组成的集群形式为主,后来逐渐演化为 peer-to-peer/wide-spread collaboration。
Motivation/Issue
Why do we want distributed systems?
造许多简单的计算机与造一台复杂计算机相比,前者成本低且难度小
容易逐渐扩容和缩容
用户可以对部分机器拥有完全控制权
方便更多的用户通过网络合作
The promise of distributed systems
Higher availability:一台机器挂了,用另一台
Better durability:复制数据
More security:更小的粒度上进行安全控制
理想很丰满,现实很骨感。现实是:
Worse availability:availability 有赖于所有正在运行的机器,任何服务挂了都有可能导致服务不可用。Lamport 曾说:“a distributed system is one where I can't do work because some machine I've never heard of isn't working!”