1.1大型网站软件的特点
高并发,大流量,高可用,海量数据,用户分布广泛,网络情况复杂,安全环境恶略,需求快速变更,发布频繁,渐进式发展
1.2 大型网站架构演化发展历程
1.2.1 初始阶段的网站架构
一台服务器
1.2.2 应用服务和数据服务分离
三台服务器:
应用服务器:需要更快更强大的CPU
文件服务器:更大的硬盘
数据库服务器:需要快速磁盘检索和数据缓存,更快的硬盘和更大的内存
缺点
:用户数量的增多,数据库压力太大导致访问延迟,进而影响整个网站的性能
1.2.3 使用缓存改善网站性能
%80的业务访问集中在%20的数据上
网站使用的缓存分为两种:应用服务器上的本地缓存和缓存在专门的分布式缓存服务器上的远程缓存。
本地缓存:访问数据更快一些,缓存数据量有限
远程缓存:可以使用集群的方式,理论上可以做到不受缓存容量的限制
缺点
:网站高峰期的时候,单一的应用服务器成为了整个网站的瓶颈
1.2.4 使用应用服务器集群改善网站的并发处理能力
使用集群式解决高并发,海量数据问题的常用手段,增加一台服务器分担原有服务器的访问及存储压力。通过负载均衡来调度服务器,可以将用户浏览器的访问请求分发到应用服务器集群中的任何一台服务器上,如果有跟多的用户,就添加更多的服务器
1.2.5 数据库读写分离
目前大部分的主流数据库都提供主从热备功能,通过配置两台数据库的主从关系,可以将一台数据库服务器的数据更新同步到另一台服务器上。一个数据库进行读操(从数据库)作,一个数据库进行写操作(主数据库)
1.2.6 使用反响代理和CDN加速网站响应
不同地区的用户访问网站时,速度差别很大,加速网站的访问速度。
CDN 服务器-》方向代理服务器-》负载均衡调度服务器
CDN和反向代理的基本原理都是缓存。
1.2.7 使用分布式文件系统和分布式数据库系统
将数据库服务器和文件服务器变成多个
1.2.8 使用NoSQL和搜索引擎
1.2.9 业务拆分
将一个网站拆分为不同的应用,每一个应用独立部署维护,通过消息队列进行数据分发。
1.2.10 分布式服务
将公用的业务服务提取出来,独立部署。由这些可复用的业务链接数据库,提供供用业务服务。