第10章-软件架构的演化和维护

31 阅读2分钟

一、软件架构演化和定义的关系

1-1 演化的重要性

----- 待补充

六、大型网站系统架构演化实例

6-1 第一阶段:单体架构

6-2 第二阶段:垂直架构

image.png

  • 应用服务器需要处理大量的业务逻辑,因此需要更快更强大的处理器速度。
  • 数据库服务器需要快速磁盘检索和数据缓存,因此需要更快的磁盘和更大的内存。
  • 文件服务器需要存储大量用户上传的文件,因此需要更大容量的硬盘。

6-3 第三阶段:使用缓存改善网站性能

  • 本地缓存的访问速度更快一些,但是受应用服务器内存限制,其缓存数据量有限,而且会出现和应用程序争用内存的情况。
  • 远程分布式缓存可以使用集群的方式,部署大内存的服务器作为专门的缓存服务器,可以在理论上做到不受内存容量限制的缓存服务。

image.png

6-4 第四阶段:使用服务集群改善网站并发处理能力

image.png

6-5 第五阶段:数据库读写分离

image.png 1.主从复制

(1)优点:

① 避免数据库单点故障

② 提高查询效率

6-6 第六阶段:使用反向代理和CDN 加速网站响应

基本原理:缓存

目的:尽早返回数据给用户,一方面加快用户访问速度,另一方面也减轻后端服务器的负载压力。

1.CDN:部署在网络提供商的机房,使用户在请求网站服务时,可以从距离自己最近的网络提供商机房获取数据

2.反向代理:部署在网站的中心机房,当用户请求到达中心机房后,首先访问的服务器是反向代理服务器,如果反向代理服务器中缓存着用户请求的资源,就将其直接返回给用户。

image.png

6-7 第七阶段:使用分布式文件系统和分布式数据库系统

image.png

6-8 第八阶段:使用NoSQL和搜索引擎

image.png

6-9 第九阶段:业务拆分

image.png

6-10 第十阶段:分布式服务

image.png