大型网站系统软件的特点
- 高并发,大流量
- 高可用
- 海量数据
- 用户分布广泛,网络情况复杂
- 安全环境恶劣
- 需求快速变更,发布频繁
- 渐进式发展
大型网站演化发展历程
1. 初始阶段的网站架构
应用程序、数据库、文件等所有的资源都在一台服务器上。
2. 应用服务器和数据库分离
应用程序、数据库和文件分别部署在不同的服务器上
3. 使用缓存改善网站性能
网站访问遵循二八定律:80%的业务访问集中在20%的数据上
网站使用的缓存可以分为两种:缓存在应用服务器上的本地缓存和缓存在专门的分布式缓存服务器上的远程缓存
4. 使用应用服务器集群改善网站的并发处理能力
负载均衡调度服务器
5. 数据库读写分离
cobar amoeba mysql自带的主从同步
6. 使用反向代理和CDN加速网站响应
CND和反向代理的基本原理都是缓存,CDN部署在网络提供商的机房,使用户在请求网站服务时,可以从距离自己最近的网络提供商机房获取数据;反向代理部署在网站的中心机房,当用户请求到达中心机房后,首先访问的服务器是反向代理服务器,如果反向代理服务器中缓存着用户请求的资源,就直接返回给用户
7. 使用分布式文件系统和分布式数据库系统
8. 使用NoSQL和搜索引擎
9. 业务拆分
10. 分布式服务
大型网站架构演化的价值观
- 大型网站机构技术的核心价值是随网站所需灵活应对
- 驱动大型网站技术发展的主要力量是网站的业务发展
网站机构设计误区
- 一味追随大公司的解决方案
- 为了技术而技术
- 企图用技术解决所有问题