1、高并发架构的相关概念
高并发概念:并发,高并发,通常是指并发访问。也就是在某个时间点,有多少个访问同时到来。
2、高并发的问题,我们集体该关心什么?
qps:每秒钟请求或查询的数量,在互联网领域,指每秒响应请求数(http请求)吞吐量:单位时间内处理的请求数量(通常由QPS与并发数决定)响应时间,从请求发出到收到响应应花费的时间,列如系统处理一个http请求需要100ms,这个100ms激素hi系统的响应时间pv:综合浏览量,即页面浏览量或者是点击量,一个访客在24小时之内访问的页面的数量同一个人浏览你的网站的同一页面,只记作一次pvuv:独立访客,即一定的时间范围内相同访客多次浏览网站,只计算为1个独立访客带宽:计算带宽大小需要关注两个指标,峰值流量和页面的平均大小日网站的带宽=pv/统计时间(换算为秒)*平均页面大小(单位kb)*8qps不等于并发连接数qps是每秒http请求数量,并发连接数是系统同时处理的请求数量峰值每秒请求数(qps)=(总pv数80%)/(6小时秒数20%)压力测试:测试能承受的最大的并发数,测试最大承受的qps值测试工具:ab,wrk,http_loadab:可以创建多个并发线程,模拟多个访问者同时对某一url地址进行访问。它的测试目标是基于url的,因此,它即可以用来测试apache的负载压力,耶可以测试
3、ab工具使用的时候的注意事项
测试机器与被测试的机器要分开不要对线上的服务做压力测试观察测试工具ab所在的机器以及被测试的前端机的cpu,内存,网络等都不超过最高限度的75%
4、不同qps下的解决方案
优化实例:
a、qps达到100
假设关系型数据库的每次请求在0.01秒内完成
假设单页面只有一个sql查询,那么1000ps意味着1s内完成100次请求,但是此时我们并不能保证数据库查询能完成100次
方案:数据库缓存层,数据库的负载均衡
qps达到800
假设我们使用百兆带宽,意味着网站出口的实际带宽是8M左右
假设每个页面只有10k,在这个并发条件下,百兆带宽已经吃完
方案:cdn加速,负载均衡
qps达到1000
静态html缓存
qps达到2000
这个级别下。文件系统访问锁都成了灾难,
方案:做业务分离,分布式存储
5、高并发解决方案案列
流量优化:防盗链处理
前端优化:减少http请求,添加异步请求,启用浏览器缓存,文件压缩,cdn加速,建立独立的图片服务器
服务端优化:页面静态化,并发处理,队列处理
数据库优化:数据库缓存,分库分表,分区操作(可以使用工具完成),读写分离,负载均衡
web服务器优化:负载均衡(利用反向代理,lvs实现负载均衡)
以上是高并发和大流量解决方案的详细内容。更多信息请关注PHP中文网其他相关文章!