到底多大才算高并发?

一、什么是高并发

定义:

高并发(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台机器负载均衡。”

这时候小熊心里的表情大概是:
在这里插入图片描述
但是如果小熊就职的公司是美团之类的。那这这时候小熊心里的表情大概是:
在这里插入图片描述
场景2:

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

mysql说:我单机TPS10000+

nginx说:我单机QPS10W+

静儿说:给我一台56核200G高配物理机,我可以创建一个单机QPS1000W
在这里插入图片描述
不在同一维度,没有任何前提,无法比较谁更牛。“我的系统算不算高并发?”这个问题就如同一个女孩子爱问的问题:“我美不美?”
三、高并发的本质

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

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

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

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/249781.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

eclipse安装maven插件

1、在线安装插件 a.打开eclipse,菜单“Help”-“Install New Software...” b.在Work with 地址栏输入:http://download.eclipse.org/releases/对应eclipse版本名称 c.在filter框中输入maven d.选择“Collaboration”-“m2e - Maven Integration for Ecl…

VS2017 网站打包发布生成的文件中包含.pdb文件,解决办法

右键点击项目属性,选择打包/发布 Web,勾选 排除生成的调试符号: 再次发布,就不会再生成.pdb文件 转载于:https://www.cnblogs.com/JoinLet/p/10297254.html

java分布式学习路线

先理解为什么需要分布式,因为服务器处理的能力需要提升,这里有两个方面,第一是纵向 也就是增加cpu的能力,或者加内存;另一个方向就是 横向 ,就是分布式。将本来一台计算机的压力分给多太计算机,…

深入Nginx之《常用参数配置技巧》

常见参配置实战技巧 下面会讲解实战中应该怎么配置更为合理。 1.user 默认是nobody,如果使用nobody,Nginx在运行过程中会出现很多操作没有权限,比如写硬盘。一般都是用低于root级别的用户,比如www,并且可以在linux下设…

transform、transition 动画效果

transform 转换,变形 origin 定义旋转基点(left top center right bottom 坐标值) transform-origin: 50px 50px; transform-origin: left;。 rotate 旋转 transform:rotate(50deg) 旋转角度可以为负数,需要先定义…

eslint 规则

"off"或0- 关闭规则 "warn"或1- 将规则作为警告打开(不影响退出代码) "error"或2- 将规则作为错误打开(触发时退出代码为1)转载于:https://www.cnblogs.com/smzd/p/10844161.html

分布式学习路线

由于分布式系统所涉及到的领域众多,知识庞杂,很多新人在最初往往找不到头绪,不知道从何处下手来一步步学习分布式架构。 本文试图通过一个最简单的、常用的分布式系统,来阐述分布式系统中的一些基本问题。 负载均衡分布式缓存分…

洛谷p2704 炮兵阵地

典型的状态压缩题&#xff0c;只是要定义dp[i][j][k]&#xff0c; #include<bits/stdc.h>using namespace std;int n,m,state[1<<10],tot0;int dp[110][66][66],sum[1<<10],mp[110];int getsum(int x){ int cnt0; while(x){ if(x&1) cnt; …

Flask 框架app = Flask(__name__) 解析

1 #!/usr/local/bin/python2 # codingutf-83 4 from flask import Flask5 app Flask(__name__)6 7 app.route(/)8 def hello_world():9 return Hello World! 10 11 if __name__ __main__: 12 app.run(host0.0.0.0,port9000) 第4行&#xff0c;引入Flask类&#x…

发布订阅

发布订阅 在软件架构中&#xff0c;发布订阅是一种消息范式&#xff0c;消息的发送者&#xff08;称为发布者&#xff09;不会将消息直接发送给特定的接收者&#xff08;称为订阅者&#xff09;。而是将发布的消息分为不同的类别&#xff0c;无需了解哪些订阅者&#xff08;如果…

ps 命令

ps 为我们提供了进程的一次性的查看&#xff0c;它所提供的查看结果并不动态连续的&#xff1b;如果想对进程时间监控&#xff0c;应该用 top 工具。kill 命令用于杀死进程。linux上进程有5种状态: 1. 运行(正在运行或在运行队列中等待) 2. 中断(休眠中, 受阻, 在等待某个条件的…

python练习题-day8

1、有如下文件&#xff0c;a1.txt&#xff0c;里面的内容为&#xff1a; 老男孩是最好的培训机构&#xff0c; 全心全意为学生服务&#xff0c; 只为学生未来&#xff0c;不为牟利。 我说的都是真的。哈哈 分别完成以下的功能&#xff1a; a,将原文件全部读出来并打印。 with o…

消息中间件应用场景

消息中间件应用场景

IDEA开发vue.js卡死问题

在执行cnpm install后会在node_modules这个文件下面生成vue的相关依赖文件&#xff0c; 这个时候当执行cnpm run dev命令时&#xff0c;会导致IDEA出现卡死的问题&#xff0c;解决方法如下&#xff1a; 转载于:https://www.cnblogs.com/heqiuyong/p/10301925.html

[BZOJ4698][SDOI2008]Sandy的卡片(后缀自动机)

差分之后就是求多串LCS。 对其中一个串建SAM&#xff0c;然后把其它串放在上面跑。 对SAM上的每个状态都用f[x]记录这个状态与当前串的最长匹配长度&#xff0c;res[x]是对每次的f[x]取最小值。答案就是res[]的最大值。 考虑f[x]的求法&#xff0c;把s[]放在SAM上跑时&#xff…

点对点

数据传输的可靠性是通过数据链路层和网络层的点对点和传输层的端对端保证的。点对点是基于MAC地址或者IP地址&#xff0c;是指一个设备发数据给另外一个设备&#xff0c;这些设备是指直连设备包括网卡&#xff0c;路由器&#xff0c;交换机。端对端是网络连接&#xff0c;应用程…

none

module.exports {root: true,env: {node: true},extends: [plugin:vue/essential, vue/prettier],rules: {no-console: process.env.NODE_ENV production ? error : off,no-debugger: process.env.NODE_ENV production ? error : off,prettier/prettier: [error,{// tab缩…

MQ消息中间件介绍

消息队列技术是分布式应用间交换信息的一种技术&#xff0c;消息队列可驻留在内存或者磁盘上&#xff0c;队列存储消息直到它们被应用程序读走&#xff0c;通过消息队列&#xff0c;应用程序可以独立的执行—它们不需要知道彼此的位置&#xff0c;或者继续执行前不需要等待接收…

22 块级元素和行内元素

学习的初期&#xff0c;我们就要知道&#xff0c;标准文档流等级森严。标签分为两种等级&#xff1a; 行内元素块级元素比如h1标签和span&#xff0c;同时设置宽高&#xff0c;来看浏览器效果&#xff0c;那么你会发现&#xff1a; 行内元素和块级元素的区别&#xff1a;&#…

节流防抖

https://www.cnblogs.com/fsjohnhuang/p/4147810.html 转载于:https://www.cnblogs.com/smzd/p/10943002.html