1.初始架构
一台服务器,应用、数据库、文件都在一起,使用 LAMP建站 ,开发部署简单
2.应用服务与数据分离
- 访问量增长,web性能变差,数据存储空间不够
- 这时候需要风多的服务器,首先分离数据库,增加文件服务器;
- 应用服务器 处理大量业务逻辑,需要更强的CPU
- 数据库服务器 需要快速检索 和 数据缓存,需要更快的硬盘 和 更大的内存
- 文件服务器 需要存储用户上传的文件,需要更大的硬盘
3.使用缓存改善网站性能
- 使用缓存改善网站性能:
- 增加应用服务器本地缓存
- 增加远程分布式缓存集群
- 使用类似Memcached之类的开源缓存产品
4.应用服务器集群化
单一服务器端称为网站瓶颈:
应用服务器集群化提高网站并发处理能力;
增加负载均衡服务器来调度应用集群;
5.数据库读写分离
增加缓存后,访问量持速增长,数据库负载压力过高:
读写分离:利用数据库主从热备功能实现
6.使用反向代理和CDN
网站做大后,全国各地各区域访问量增长,但是各区域访问速度差别巨大:
反向代理 和 CDN: 原理都是缓存,CDN部署在网络供应商的机房,用户请求最近节点访问;
反向代理部署在网站的中心机房
7.使用分布式FS 和 分布式DBS
数据库拆分:
单表拆分:不同表放不同 库,降低单个数据库节点的负载;(不同库的表无法join)
业务拆分:同一业务表 划分到一个库中
8.使用 NoSQL 和 搜索引擎
出现海量数据存储 和 检索的需求
使用NoSQL产品 分布式部署 来支持海量数据的查询和存储
9.业务拆分
按照业务来划分子系统,按产品线划分,通过分布式服务来协同工作
转自 http://www.cnblogs.com/me115/p/3641822.html
时间: 2024-11-07 20:59:36