1. 初始阶段的网站
小型网站没有多少人访问,一个机器即可:应用服务,文件服务,数据库服务。三个服务全部在一起。
2. 应用服务与数据服务分离
随着用户量的增加,一个服务器已不能满足需求。这个时候将服务拆分,分别安装在三个服务器上:应用服务器,文件服务器,数据库服务器。
应用服务器需要对业务逻辑进行处理,对CPU的性能要求较高。数据库服务器对数据快速检索、保存等操作要求高,因而对硬盘和内存有很大需求。
文件服务器主要对磁盘要求较高。
3. 使用缓存改善网站性能
本地缓存和分布式缓存,本地缓存容量有限,分布式缓存在理论上不受限制。
4. 使用应用服务器集群改善网站的并发处理能力
使用缓存后,但是并没有解决单个应用服务器高并发处理能力的问题,也没有解决高可用的问题。因此对于持续增长的业务需求,不是增加单个服务器的性能,
而是通过增加应用服务器来分担访问压力。通过采用负载均衡器的方式,使用户访问均衡分配到集群中的每个服务器中。
5. 数据库读写分离
网站使用缓存后,大部分的数据访问将不再通过数据库来完成,极大降低了数据库的压力。但仍有少部分的数据查询和全部的数据写入集中中一台数据库服务器中,
这个服务器将成为网站性能的瓶颈。为解决这个问题,可以对数据库做读写分离。现在主流数据库都支持主从热备,数据写入主数据库后,主数据库可以实时复制到
从数据库中。利用这一功能,可以使数据库读写分离,从而改善数据库负载压力。
6. 使用反向代理和CDN加速网站响应
网络延迟会导致用户流失,为提供更好的用户体验,留住用户。必须加速网站访问速度,主要措施有:CDN和反向代理。
CDN和反向代理的基本原理都是缓存,区别在于CDN部署在网络提供商的机房;反向代理则部署在网站的中心机房,当用户请求到达中心机房时,首先访问的服务器是反向代理服务器。
7. 使用分布式文件系统和分布式数据库系统
数据库服务器从一台拆分两台(读写分离),但是随着业务发展,依然不能满足需求,这时需要使用分布式数据库,文件系统也是一样。分布式数据库是网站数据库拆分的最后手段。
只有在单表规模非常庞大的时候才使用。网站更常用的数据库拆分手段是业务分库,将不同业务的数据库部署在不同的物理服务器上。
8. 使用NOSQL和搜索引擎
网站业务越来越复杂,,对数据存储和检索的需求就越来越复杂,这时需要采用NOSQL和搜索引擎来支撑。
9. 业务拆分
大型网站为了应对日益复杂的业务场景,通过使用分而治之的手段将整个网站业务分成不同的产品线。具体到技术上,根据产品线划分,将一个网站拆分成许多不同的应用,每个应用独立部署维护。
应用之间可以通过一个超链接建立关系,也可以通过消息队列进行数据分发,当然最多的还是通过访问同一个数据存储系统来构成一个完整系统。
10. 分布式服务
学习笔记3:《大型网站技术架构 核心原理与案例分析》之 大型网站架构演化
原文:http://www.cnblogs.com/huiy/p/6426093.html