到底多大才算高并发?

简介: 到底多大才算高并发?

一、什么是高并发


定义:


   高并发(High Concurrency)是使用技术手段使系统可以并行处理很多请求。

 

关键指标:


-响应时间(Response Time)


-吞吐量(Throughput)


-每秒查询率QPS(Query Per Second)


-每秒事务处理量TPS(Transaction Per Second)


-同时在线用户数量

 

关键指标的维度:


-平均,如:小时平均、日平均、月平均


-Top百分数TP(Top Percentile),如:TP50、TP90、TP99、TP4个9


-最大值


-趋势

 

「并发」由于在互联网架构中,已经从机器维度上升到了系统架构层面,所以和「并行」已经没有清晰的界限。「并」(同时)是其中的关键。由于「同时」会引发多久才叫同时的问题,将时间扩大,又根据不同业务关注点不同,引申出了引申指标。


引申指标:


-活跃用户数,如:日活DAU(Daily Active User)、月活MAU(Monthly Active Users)


-点击量PV(Page View)


-访问某站点的用户数UV(Unique Visitor)


-独立IP数IP(Internet Protocol)


-日单量

 

二、多大算高并发


   这个问题的答案不是一个数字。来看两个场景:


场景1:


   木头同学去一家创业公司面试。这个公司做的产品还没有上线,面试官小熊之前就职过公司的产品都没有什么量。


小熊:“有高并发经验吗?”


木头:“我们服务单机QPS2000+,线上有4台机器负载均衡。”


这时候小熊心里的表情大概是:



1112728-20190219122750059-216638116.png


   但是如果小熊就职的公司是美团之类的。那这这时候小熊心里的表情大概是:



1112728-20190219122807248-1494949910.png


场景2:


固态硬盘SSD(Solid State Disk)说:我读取和写入高达 1000MB/秒


mysql说:我单机TPS10000+


nginx说:我单机QPS10W+


静儿说:给我一台56核200G高配物理机,我可以创建一个单机QPS1000W



1112728-20190219123015461-1365697632.png


 不在同一维度,没有任何前提,无法比较谁更牛。“我的系统算不算高并发?”这个问题就如同一个女孩子爱问的问题:“我美不美?”

 

三、高并发的本质


   俗话说:「没有对比就没有伤害」。算不算高并发,这个问题的答案需要加对比和前提。

 

对比包括:


-业界:在业界同类产品中并发量处于什么位置。举个栗子🌰,美团外卖的日单量是千万级别,一个系统日单量在百万,虽然差一个数量级,但是相比大多数公司已经很不错。


-自身:在自身系统中,并发问题是否已经是系统的瓶颈?如果是,这么这个瓶颈怎么打破?如果不是,那当初架构设计的时候是怎么保证并发不是问题的?(别告诉我:是通过系统没有访问量来保证的[擦汗])。

 

前提包括:


-业务复杂度:举个栗子🌰,访问百度首页的时间基本就是看自己家的网速,通常情况下都是点一下就看到结果了。而扫描二维码支付,通常需要等很久,虽然这可能已经是业界最牛的支付公司出品了。


-配置:用高配物理机得出的数据和最老最低配的虚拟器上的出来的结果是无法比较的。通常的配置有:cpu、内存、磁盘、带宽、网卡

 

   高并发的本质不是「多大算高并发」的一个数字,而是从架构上、设计上、编码上怎么来保证或者解决由并发引起的问题。当别人问你:“做过高并发吗?”回答者完全可以描述自己系统的各项指标,然后开始叙述自己对系统中对预防、解决并发问题作出的思考和行动。

 

四、总结


   过程大于结果,方向大于方法。

相关文章
|
消息中间件 存储 JSON
消息队列的应用场景
消息队列的应用场景
479 0
|
小程序
小程序-uni-app:hbuildx uni-app 安装 uni-icons 及使用
小程序-uni-app:hbuildx uni-app 安装 uni-icons 及使用
1532 0
|
XML 前端开发 架构师
关于springboot配置文件未加载的问题解决办法
一般情况下springboot的项目的配置文件都是默认加载的properties文件和yaml文件,但是有时候因为一些其他的设置也会导致这些配置文件没有被加载
3084 0
关于springboot配置文件未加载的问题解决办法
|
9月前
|
人工智能 固态存储 IDE
Android Studio 2025 超详细安装图解:从零到汉化一步到位
Android Studio 2025(Narwhal)是谷歌推出的最新安卓开发IDE,界面更现代,支持AI辅助编码、Jetpack Compose升级、多设备模拟器,构建速度更快,适配折叠屏等新形态设备,全面提升开发效率。
4871 2
|
前端开发 JavaScript 应用服务中间件
前端跨域问题解决Access to XMLHttpRequest at xxx from has been blocked by CORS policy
跨域问题是前端开发中常见且棘手的问题,但通过理解CORS的工作原理并应用合适的解决方案,如服务器设置CORS头、使用JSONP、代理服务器、Nginx配置和浏览器插件,可以有效地解决这些问题。选择合适的方法可以确保应用的安全性和稳定性,并提升用户体验。
9553 90
|
关系型数据库 MySQL Docker
|
Java 编译器 Spring
面试突击78:@Autowired 和 @Resource 有什么区别?
面试突击78:@Autowired 和 @Resource 有什么区别?
18103 7