大并发服务器开发02
大型网站架构演变过程
web server与数据库分离
动静资源分离
浏览器静态请求:html、js、css、img
浏览器动态请求:jsp、php
因此web服务器可分为http服务器(主要处理静态请求)(前端服务器)与应用服务器(主要处理动态请求)(后端服务器)
缓存处理
- 客户端(浏览器)缓存
- 前端页面缓存(squid)(静态页面)
- 页面片段缓存ESI(edge side includes)
- 本地数据缓存
web server集群+读写分离
CDN、分布式缓存、分库分表
CDN(context delivery network)内容分发网
分布式缓存:可共享
分库分表:一定程度上避免锁竞争
多数据中心+分布式存储与计算
对一致性要求没有很高的数据没有必要保存在关系数据库(事务、大表、join等影响性能)中,对一致性要求较低的数据分离至数据中心使用nosql进行存储,并发性高,成本低
分布式存储:DFS、key-value DB、Map/Reduce(计算框架)(map各自统计reduce合并)