课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
高并发编程开发是程序员在开发软件的时候会遇到的一个开发需求,而今天我们就通过案例分析来了解一下,高并发开发的概念与优化方法。
一.什么是高并发
高并发(High Concurrency)是互联网分布式系统架构设计中必须考虑的因素之一。它通常是指,通过设计保证系统能够同时并行处理很多请求。
高并发指标通常有四点:响应时间(RT)、吞吐量(Throughput)、QPS(Queries-per-second)、并发用户数。
注:一个用户一秒内狂点按钮10次,这不是并发。只有10次请求在同一时刻同时向服务器发送请求(比如用CountDownLatch模拟实现),这才是并发。
1.1 响应时间(RT)
响应时间是指系统对请求作出响应的时间,一般来讲,用户能接受的响应时间是小于5秒。
1.2 吞吐量(Throughput)
吞吐量是指系统在单位时间内处理请求的数量。对于无并发的应用系统而言,吞吐量与响应时间成严格的反比关系,实际上此时吞吐量就是响应时间的倒数。
一个系统的吞度量(承压能力)与request对CPU的消耗、外部接口、IO等等紧密关联。
系统吞吐量几个重要参数:QPS(TPS)、并发数、响应时间
QPS(TPS):每秒钟request/事务数量
并发数: 系统同时处理的request/事务数量
响应时间: 一般取平均响应时间
理解了上面三个要素的意义之后,就能推算出它们之间的关系:
QPS(TPS)= 并发数/平均响应时间
一个系统吞吐量通常由QPS(TPS)、并发数两个因素决定,每套系统这两个值都有一个相对极限值,在应用场景访问压力下,只要某一项达到系统高值,系统的吞吐量就上不去了,如果压力继续增大,系统的吞吐量反而会下降,原因是系统超负荷工作,上下文切换、内存等等其它消耗导致系统性能下降。
1.3 QPS(Queries-per-second)
每秒响应请求数
1.4 并发用户数
并发用户数是指系统可以同时承载的正常使用系统功能的用户的数量。与吞吐量相比,并发用户数是一个更直观但也更笼统的性能指标。实际上,并发用户数是一个非常不准确的指标,因为用户不同的使用模式会导致不同用户在单位时间发出不同数量的请求。
二、高并发带来的问题
2.1 服务端
某一时间片刻系统流量异常高,系统濒临阀值;
服务器CPU,内存爆满,磁盘IO繁忙;
系统雪崩:分布式系统中经常会出现某个基础服务不可用造成整个系统不可用的情况,这种现象被称为服务雪崩效应。服务雪崩效应是一种因服务提供者的不可用导致服务调用者的不可用,并将不可用逐渐放大的过程。A为服务提供者,B为A的服务调用者,C和D是B的服务调用者。当A的不可用,引起B的不可用,并将不可用逐渐放大C和D时,服务雪崩就形成了。
2.2 用户角度
使用体验差
三、并发解决方案-四大法定
缓存:Redis
异步:消息中间件MQ
并发编程
分布式
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请在707945861群中学习了解。