1、为什么要进行高并发和高负载的研究
1.1、产品发展的需要
1.2、公司发展的需要
1.3、当前形式决定的
2、高并发和高负载的约束条件
2.1、硬件
2.2、部署
2.3、操作系统
2.4、Web 服务器
2.5、PHP
2.6、MySQL
2.7、测试
3、解决之道——硬件篇
处理能力的提升:部署多颗CPU,选择多核心、具备更高运算频率、更大高速缓存的CPU;
处理能力的提升最直接的反应在于Web请求的处理效率和PHP程序的执行效率。
内存带宽与容量:更大的内存带宽和容量;
内存带宽与容量的提升最直接的反应在于应对数据库大量的数据交换。
磁盘搜索与I/O能力:选择更高的转速、更大的硬盘缓存、组件磁盘阵列(RAID);
磁盘搜索与I/O能力的提升最直接反应在于数据库大量的查询和读写以及文件的读写。
网络带宽的提升可考虑的因素包括: 更大带宽、多线路接入、独享带宽;
服务器在大负载的情况下,对网络带宽的占用是十分可观的。
策略:硬件设施是应对大负载的基础,硬件设施的投入可根据实际压力和预算量力而行。
4、解决之道——部署篇
4.1、服务器分离
4.2、数据库集群和库表散列
4.3、镜像
4.4、负载均衡
分类: 1)、DNS轮循
2)代理服务器负载均衡
3)地址转换网关负载均衡
4)NAT负载均衡
5)反向代理负载均衡
6)混合型负载均衡
策略:根据硬件投入和业务需求,选择合理的部署方案。
部署方案1:
适用范围:静态内容为主体的网站和应用系统;对系统安全要求较高的网站和应用系统。
Main Server:主服务器
承载程序的主体运行压力,处理网站或应用系统中的动态请求;
将静态页面推送至多个发布服务器;
将附件文件推送至文件服务器;
安全要求较高,以静态为主的网站,可将服务器置于内网屏蔽外网的访问。
DB Server:数据库服务器
承载数据库读写压力;
只与主服务器进行数据量交换,屏蔽外网访问。
File/Video Server:文件/视频服务器
承载系统中占用系统资源和带宽资源较大的数据流;
作为大附件的存储和读写仓库;
作为视频服务器将具备视频自动处理能力。
发布服务器组:
只负责静态页面的发布,承载绝大多数的Web请求;
通过Nginx进行负载均衡部署。
部署方案2:
适用范围:以动态交互内容为主体的网站或应用系统;负载压力较大,且预算比较充足的网站或应用系统;
Web服务器组:
Web服务无主从关系,属平行冗余设计;
通过前端负载均衡设备或Nginx反向代理实现负载均衡;
划分专用文件服务器/视频服务器有效分离轻/重总线;
每台Web服务器可通过DEC可实现连接所有数据库,同时划分主从。
数据库服务器组: