《Patterns of Distributed Systems》这本书由 Unmesh Joshi 撰写,全面介绍了分布式系统中的各种模式。以下是对这本书的总结:
第一部分:概述
- 为什么要分布式
- 资源限制:CPU、内存、网络和磁盘是计算的基本资源,单服务器处理能力受这些资源上限限制,如网络带宽决定数据传输上限,磁盘有读写速度限制,内存限制可加载的数据量,CPU 处理能力有限。当请求数超过资源上限,请求需排队等待,影响系统吞吐量,因此需通过分布式利用多服务器资源。
- 分区和复制:介绍了两种常见的分布式架构方式。一是分离业务逻辑和数据层,无状态部分暴露功能,有状态部分由数据库管理,通过水平扩展无状态服务处理更多请求,但存在数据库响应和连接处理问题,可通过添加缓存层缓解,但缓存不适用于所有情况。二是按领域边界分区,如微服务架构,不同领域有各自的软件系统,但共享基础设施组件仍可能面临类似问题。还强调了数据量和请求数增长导致的问题,以及处理数据时故障处理和复制的重要性。
- 定义分布式系统:存储数据并在多服务器上作为多个进程运行,协调数据状态的软件系统。具有运行在多个进程、管理数据、通过消息传递通信、容忍部分故障等特点。
- 模式概述
- 介绍了分布式系统中的两种基本操作:分区和复制。以一个简单的数据记录在三个节点上的复制为例,阐述了在不同场景下如何保证数据的一致性和可用性。