服务端架构知识

119 阅读3分钟

大部分网站的架构是怎样的呢?其架构又经历了怎样的演变?本文希望从一个前端的角度聊聊我理解的网站架构的历史演变。讲解会尽可能通俗易懂,欢迎大家一起评论交流。

一、初始阶段 大型网站都是从小型网站发展而来,网站架构也是一样,是从小型网站架构逐步演化而来。小型网站最开始没有太多人访问,只需要一台服务器就绰绰有余,这时的网站架构如下图所示:

image.png

应用程序、数据库、文件等所有资源都在一台服务器上。

二、应用和数据服务分离 随着网站业务的发展,一台服务器逐渐不能满足需求:越来越多的用户访问导致性能越来越差,越来越多的数据导致存储空间不足。这时就需要将应用和数据分离。应用和数据分离后整个网站使用3台服务器:应用服务器、文件服务器和数据库服务器。这 3 台服务器对硬件资源的要求各不相同:

应用服务器需要处理大量的业务逻辑,因此需要更快更强大的CPU; 数据库服务器需要快速磁盘检索和数据缓存,因此需要更快的磁盘和更大的内存; 文件服务器需要存储大量用户上传的文件,因此需要更大的硬盘。 此时,网站系统的架构如下图所示:

image.png

应用和数据分离后,不同特性的服务器承担不同的服务角色,网站的并发处理能力和数据存储空间得到了很大改善,支持网站业务进一步发展。但是随着用户逐渐增多,网站又一次面临挑战:数据库压力太大导致访问延迟,进而影响整个网站的性能,用户体验受到影响。这时需要对网站架构进一步优化。

三、使用缓存改善网站性能 网站访问的特点和现实世界的财富分配一样遵循二八定律:80% 的业务访问集中在 20% 的数据上。既然大部分业务访问集中在一小部分数据上,那么如果把这一小部分数据缓存在内存中,就可以减少数据库的访问压力,提高整个网站的数据访问速度,改善数据库的写入性能了。 网站使用的缓存可以分为两种:缓存在应用服务器上的本地缓存和缓存在专门的分布式缓存服务器上的远程缓存。

本地缓存的访问速度更快一些,但是受应用服务器内存限制,其缓存数据量有限,而且会出现和应用程序争用内存的情况。

远程分布式缓存可以使用集群的方式,部署大内存的服务器作为专门的缓存服务器,可以在理论上做到不受内存容量限制的缓存服务。