大型网站架构设计的演进与重构

2020-08-11 11:00:00

在网站架构设计中,不应迷信追求大公司的网站解决方案,也不应为了技术而使用技术。许多大型网站的架构设计都经历了从小型网站到大型网站的演变过程。在演化和重构过程中,决定因素是高并发数据访问和海量数据存储容量。那么,大型网站的架构设计经历了怎样的演变与重构?这些演化和重构的原因是什么?本文将重点研究大型网站架构设计的演进与重构。

当站点开始运行时,没有太多的用户流量和数据存储容量。在这种情况下,可以在服务器上部署应用程序、数据库和文件等资源,基本上可以满足应用程序的需求。此时,网站架构设计如下图所示:

然而,随着网站业务的发展和规模的扩大,一个服务器逐渐不能满足需求:越来越多的用户访问导致性能下降,越来越多的数据存储导致存储空间不足。此时,我们需要将应用程序和数据分开。应用与数据分离后,整个网站可以使用三个服务器:应用服务器、文件服务器和数据库服务器。此时,网站架构设计如下图所示:

这三台服务器对硬件资源有不同的要求。应用服务器需要处理大量的业务逻辑,需要更快更强大的CPU;数据库服务器需要快速的磁盘检索和数据缓存,因此需要更快的硬盘和更大的内存;文件服务器需要存储大量用户上传的文件,因此需要更大的硬盘。应用与数据分离后,不同特征的服务器承担不同的服务角色。网站的并发处理能力和数据存储空间得到了极大的提高,为网站业务的进一步发展提供了支持。

然而,随着用户数量的不断增加,网站也面临着另一个挑战:数据库压力过大导致访问延迟,影响了整个网站的性能,用户体验也受到很大影响。我们知道,大多数业务访问通常集中在一小部分数据上。如果将这一小部分数据缓存在内存中,将减轻数据库访问的压力,提高整个网站的数据访问速度,提高数据库的读写性能。网站使用的缓存有两种:应用服务器上的本地缓存和专用分布式缓存服务器上的远程缓存。此时,网站架构设计如下图所示:

本地缓存的访问速度更快。然而,由于应用服务器内存的限制,缓存数据量有限,会与应用程序争夺内存。远程分布式缓存可以采用集群模式,内存较大的服务器可以部署为一个专用的缓存服务器,理论上可以不受内存容量的限制提供缓存服务。

网站架构设计采用缓存技术,有效缓解了数据访问的压力。然而,单个应用服务器能够处理的请求连接是有限的,在网站访问的高峰期,应用服务器将成为整个网站的瓶颈。因此,有必要进一步改进应用服务器架构的设计策略。