作者个人研发在高并发场景下提供了一个简单、稳定、可扩展的延迟消息队列框架,具有精准的定时任务和延迟队列处理功能。开源半年多以来,已成功为十几家中小企业提供精准定时调度解决方案,经受住了生产环境的考验。为了造福更多的童鞋,这里给出开源框架的地址:https://github.com/sunshinelyz/mykit-delay写在前面,最近很多小伙伴都在问我:学习了很多文章关于高并发的话题是的,但我仍然对如何设计高并发系统感到困惑!如何解决这个问题呢?其实我相信不仅问我的小伙伴有这种困惑,就连工作(入坑)几年的开发者也有这种困惑:我研究了很多高-并发课程,看了很多高水平的文章,就是不知道怎么设计一个支持高并发大流量的系统。针对小伙伴们的疑惑,这里给大家分享一些设计高并发大流量系统的常规思路,不一定完全正确。自身业务场景的架构思想都是好的架构思想。架构本身并没有完全正确的架构,只是尽量符合??自己当时的业务场景,能够很好的支撑业务负载。高并发架构相关概念什么是并发?并发是指并发访问,即在某个时间点有多少访问同时到来;通常情况下,如果一个系统的日PV超过1000万,就可能是高并发系统,这里需要注意的是:只有可能是高并发系统,不一定是高并发系统。并发数和QPS是不同的概念。一般来说,QPS是指有多少并发用户下载QPS。QPS相同时,并发数越大,网站的并发处理能力越好。当并发用户数过大时,会造成进程(线程)的频繁切换。反正处理请求的实时时间会减少,每秒能处理的请求数也会减少。同时,用户请求的等待时间也会增加。找到最佳的线程数可以使web系统更加稳定和高效。并发=QPS*平均响应时间高并发你具体关心什么?QPS:每秒请求数或查询数,在互联网领域,是指每秒响应请求数;吞吐量:单位时间内处理的请求量(通常由QPS和并发数决定);响应时间:从发出请求到收到响应所花费的时间,比如系统处理一个HTTP请求需要100ms,这100ms就是系统的响应时间;PV:Comprehensivepageviews,即页面浏览量或点击量,访问者24小时内访问的页面数;UV:uniquevisitor,即同一访客在一定时间内多次访问网站,只算作独立访客;bandwidth:计算带宽大小、峰值流量和页面平均大小时需要注意两个指标;每日网站带宽可以用以下公式粗略计算:每日网站带宽=pv/统计时间(换算成秒)*平均页面大小(单位kB)*8峰值一般是平均值的倍数;QPS不等于并发连接数,QPS是每秒HTTP请求数,并发连接数是系统同时处理的请求数;每秒峰值请求数(QPS)=(总PV数*80%)/(6小时秒*20%)压力测试:测试可容忍的最大并发数,测试最大容忍QPS值。测试工具(ab):目标是一个URL,可以创建多个访问线程来访问同一个URL(Nginx);ab的使用:模拟100个并发请求(100个人),共5000个请求(每人5000个请求))ab-c100-n5000待测网站(内存和网络不超过最大值的75%)QPS达到50:一般服务器可以应付;QPS达到100:假设关系型数据库的每个请求在0.01秒内完成(理想),假设单个页面只有一个SQL查询,那么100QPS就是1秒内完成100个请求,但是此时我们不能保证数据库查询可以完成100次;解决方案:数据库缓存层,数据库负载均衡;QPS达到800:假设我们使用100M的宽带,也就是说网站出口的实际带宽在8M左右。假设每个页面有10k,在这种并发情况下,100M的带宽已经被消耗掉了;解决方案:CDN加速,负载均衡QPS达到1000:假设使用Redis缓存数据库查询数据,每个页面对Redis的请求远大于直接对DB的请求;Redis的悲观并发数在5W左右,但有可能之前内网带宽已经被消耗,表现不稳定;解决方案:静态HTML缓存QPS达到2000:文件系统访问锁成了灾难;解决方案:业务分离,分布式存储;高并发解决方案案例流量优化:防盗链处理(拒绝部分恶意请求)前端优化:减少HTTP请求,增加异步请求,启用浏览器缓存和文件压缩,CDN加速,建立独立图片服务器;服务器端优化:页面静态处理、并发处理、队列处理;数据库优化:数据库缓存、分库分表、分区操作、读写分离、负载均衡Web服务器优化:高并发下负载均衡的经验公式通过QPS和PV计算部署服务器数计算公式1单台服务器每日PV:每日总PV=QPS*♂0*6公式2:每日总PV=QPS*3600*8服务器计算服务器数=ceil(每日总PV/总计单机每天PV)峰值QPS和机器计算公式原理:每天80%的访问集中在20%的时间,这20%的时间称为峰值时间公式:(总PV数*80%)/(secondsperday*20%)=peaktimerequestspersecond(QPS)机器:peakTimeQPSpersecond/QPSof单台机器=machineneeded.本文转载自微信?“冰河科技”,可通过以下二维码关注。转载本文请联系冰川科技公众号。
