什么是分布式系统?
多个计算机协同工作,共同实现储存,分发计算,相互访问等功能,
并且共享大量基础设施的系统。
为什么使用分布式?
- 管理物理意义上分离的实体。
- 通过分离实现安全性。
- 通过备份实现高容错性。
- 实现对储存,计算,网络能力的扩展。
分布式的缺点:
复杂性:大量并发。
要处理部分节点的失败,难以实现全部性能。
课程主要涉及:
系统构建:RPC, 多线程,并发控制。
性能:可伸缩的吞吐量(需要考虑负载不均衡,部分设备无法跟随问题),
如何突破分布式系统瓶颈,如网络带宽。容错性:
可用性,部分错误不影响外部程序对服务器的使用。
持久性,错误修复后外部程序重新工作。(复制服务器)一致性:
客户端很容易在多步更新的时候崩溃。
服务器在一些时候会崩溃(如执行之后答复之前)。
网络问题可能使正常的服务器看起来挂了。
一致性与性能有对立性。
一致性需要服务器间的通讯,强一致性往往是系统变慢。
高性能往往有弱一致性的属性。