1.大型网站软件系统的特点:
- 高并发,大流量
- 高可用
- 海量数据
- 用户分布广泛,网络情况复杂
- 安全环境恶劣
- 需求快速变更,发布频繁
- 渐进式发展
2.大型网站演变架构
1)初步应用:数据(数据库,文件服务器)和应用程序跑在单一服务器上
2)数据与应用分离:数据库服务器,文件服务器,应用程序服务器
3)缓存改善性能:(应用程序(带有本地缓存)-->外接分布式缓存)-->数据库服务器以及文件服务器对接
4)应用程序集群:使用负载均衡策略来进行请求分布
负载均衡调度器--->(多个饮用程序分布式部署)--->外接分布式缓存--->数据库服务器以及文件服务器对接
5)数据库读写分离:当单一数据库IO量达到极限时候,需要对数据库进行集群
将数据库服务器进行分布式
数据库服务器(主库(写数据库)--->多个从库用于数据select)
6)CDN加速
在负载均衡前面添加一层反向代理服务器和Cdn加速器,将一些缓存数据尽早返回给服务器,让页面反应速度加快
Cdn加速器-->反向代理->负载均衡调度器--->(多个饮用程序分布式部署)--->外接分布式缓存--->数据库服务器以及文件服务器对接
7)分布式数据库以及分布式文件服务器
当数据库中数据量非常大的时候,可以将这个不同业务的数据放在不同的物理机上。
当文件数据量比较大时候,单一文件服务器不能承载时候,可以将单一文件服务器改为分布式文件服务器
8)NOSQL和搜索引擎
当大数据量大文件量的时候,必定会涉及到文件数据的搜索,此时需要的是NOSQL以及搜索引擎服务器给其提供搜索服务,减轻数据源管理的麻烦
9)业务拆分:
将一个巨大的应用分为不同的业务模块进行开发,将每一个不同模块的应用进行分布在不同的服务器中进行使用,不同模块与模块之间采用消息队列进行通信
3.架构模式:
1.单一应用(初期应用):应用层,服务层,数据层整合在一起;
2.数据分层:将应用分为:应用层,服务层,数据层
3.分割:根据业务进行模块分割,将一个大应用分割成一个一个的小模块进行开发
4.分布式部署:
分布式应用和服务
分布式静态资源
分布式数据和存储
分布式计算
5.集群:单一服务器不能承担该任务时候,需要对其进行集群部署
6.缓存:
CDN
反向代理
本地缓存
分布式缓存
7.异步调用
当数据量巨大时候,可以采用异步调用策略进行调度。
其实现原理相当于是和生产者和消费者模式差不多采用消息队列实现的异步
8冗余:
对数据进行冷热备份
9.自动化
自动化运维方面,自动化监控
10安全化:
通过验证码机制以及防止SQL注入问题
4.TPS,HPS,QPS
TPS:每秒事物数
HPS:每秒的HTTP请求数
QPS:每秒的查询数