本文给梯友们梳理下李智慧编写的《大型网站技术架构_核心原理与案例分析》,我觉得里面的好多策略都在实际中有相应的使用。梳理出来仅供各位参考。
一、大型网站软件系统的特点
·高并发、大流量
·高可用
·海量数据
·用户分布广泛、网络情况复杂
·安全环境恶劣
·需求快速变更
二、大型网站架构演化发展历程
1、初始阶段的网站架构
这个阶段应用程序、数据库、文件等所有资源都放到一台服务器上。
2、应用服务器和数据服务分离
3、使用缓存改善网站性能
使用缓存后,数据库访问压力得到有效缓解。
4、使用应用服务器集群
通过负载均衡,可将用户的流量分发到不同的机器里面,减少服务器的压力。
5、数据库读写分离
通过读写分离的机制,可以让数据库的压力减少。
6、使用反向代理和CDN加速
使用cdn加速可以加快用户访问速度,减少服务器的压力。
7、使用分布式文件和分布式数据库系统
8、使用NoSQL
9、业务拆分
将一个网站拆分成不同的应用,每个应用独立部署和维护。
10、分布式服务
三、大型网站架构演化的价值观
1、分层
分层是企业应用系统中最常见的一种架构模式,将系统在横向维度切分成几个部分,每个部分负责单一的职责。
2、分割
分层是将软件在横向方面进行切分,分割是在纵向方面对软件进行切分。
3、分布式
·分布式应用和服务
·分布式静态资源
·分布式数据和存储
·分布式计算
4、集群
多台服务器部署相同应用构成一个集群,通过负载均衡设备共同对外提供服务。
5、缓存
·CDN
·反向代理
·本地缓存
·分布式缓存
6、异步
·提高系统可用性
·加快网站响应速度
·消除并发访问高峰
7、冗余
·数据冗余:冷备、热备
·应用冗余:集群
8、自动化
·发布过程自动化
·自动化代码管理
·自动化测试
·自动化安全检测
·自动化部署
·自动化监控
·自动化报警