大型网站框架演化史

大型网站架构演化史

1.应用服务器和数据服务器分离

  应用服务器:需要处理大量业务,因此需要更快更强大的CPU

  数据库服务器:需要处理快速磁盘检索和数据缓存,因此需要更快的硬盘和更大的内存

  文件服务器:需要存储大量用户上传的文件,因此需要更大的硬盘

2.使用缓存改善网站性能-----减少数据库的访问压力

   网站缓存可分为两种,缓存在应用服务器的本地缓存以及缓存在专门的分布式缓存服务器上的远程缓存。

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

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

3.使用应用服务集群改善网站的并发处理能力----解决高并发以及海量数据

   通过负载均衡调度服务器,将来自用户浏览器的访问请求分发到应用服务器集群中的任何一台服务器上

4.数据库读写分类

   网站在使用缓存后,使绝大部分数据读操作访问都可以不通过数据库完成,但是仍有一部分读操作(缓存访问不命中、缓存过期)和全部的写操作需要访问数据库。目前大部分主流数据库都提供主从热备功能,通过配置两台数据库主从关系,将一台数据服务器的数据更新同步到另一台服务器上。

   应用服务器在写数据的时候,访问主数据库,主数据库通过主从复制机制将数据更新同步到从数据库,这样当应用服务器读数据的手,就可以通过从数据库获取数据。为了便于应用程序访问读写分离后的数据库,通常在应用服务器端使用专门的数据访问模块,使数据库读写分离对应用透明。

5.使用反向代理和CDN加速网站响应-----加速网站访问速度

 CDN和反向代理的原理都是基于缓存,区别在于CDN部署在网络提供商的机房,使用户在请求网络服务时,可以从距离自己最近的网络提供商机房获取数据;而反向代理则部署在网站的中心机房,当用户请求到达中心机房后,首先访问服务器的反向代理服务器,如果反向代理服务器中缓存着用户请求的资源,就将其直接返回给用户

6.使用分布式文件系统和分布式数据库系统

  分布式数据库是网站数据库拆分的最后手段,只有在单表数据规模非常庞大的时候才使用,网站更常用的数据库拆分手段是业务分库,将不同业务的数据部署在不同的物理服务器上。

7.使用NoSQL和搜索引擎-----解决数据存储和检索的问题

  NoSQL:非关系数据库技术

  搜索引擎:非数据库查询技术

8.业务拆分

   根据不同的产品线划分,将一个网站拆分成许多不同的应用,每个应用独立部署。应用之间可以通过一个超链接建立关系,也可以通过消息队列进行数据分发,当然最多的还是通过访问同一个数据存储系统来构成一个关联的完整系统

9.分布式服务

原文地址:https://www.cnblogs.com/xiaoxiaoxuepiao/p/10560147.html