QPS多少,才算高并发 ?

本文涉及的产品
网络型负载均衡 NLB,每月750个小时 15LCU
传统型负载均衡 CLB,每月750个小时 15LCU
应用型负载均衡 ALB,每月750个小时 15LCU
简介: 本文详解高并发概念及 QPS 标准,大厂面试高频点,建议掌握收藏。关注【mikechen的互联网架构】,10年+BAT架构经验分享。

关注△mikechen的互联网架构△,10年+BAT架构经验倾囊相授


image.png

大家好,我是 mikechen | 陈睿

QPS 多少才算高并发?这是个面试高频问题。

对此了解得不够深入的同学,这篇文章就一定要认真看看了。

本文,我们详解:什么是高并发,以及 QPS 多少才算高并发。@mikechen

什么是高并发

高并发,是指系统在短时间内、同时处理大量请求的能力。

比如:大家熟知的阿A里双 11,一秒峰值完成 58.3 万笔订单,这就是典型的高并发场景。

image.png

这可能包括多个用户同时发送请求、多个客户端同时连接到服务器、或者同时进行大量的事务处理。

多大算高并发

我们可以通过一些关键指标,来判断何时可以将一个系统视为高并发系统。

比如:通过 QPS 来计算具体的数据标志。

QPS 是Query Per Second的缩写,即每秒查询率,是衡量系统、服务或数据库每秒能够处理的查询请求数量。

image.png

QPS 通常用于衡量数据库、Web 服务器、API 等系统的性能。

QPS 的计算方式很简单,就是统计系统在每秒内处理的查询请求数量。

通常情况下,QPS在几千到几万以上的范围内可以被认为是高并发。

比如:QPS 在 1000 到 10000 之间,通常属于较为繁忙的系统,就属于有一定的并发量了。

如果超过 10,000...QPS 甚至到数十万、上百万 QPS 的级别,也就是非常高的并发场景。

这类系统往往依赖于复杂的架构,如:多级缓存、负载均衡、数据库分库分表、消息队列...等来解决。

多级缓存

多级缓存,就会涉及到:

image.png

  • 客户端缓存:例如:浏览器缓存,减少服务器压力...等等;
  • CDN(内容分发网络):CDN也就缓存的一大利器,一般都会采用:把静态资源缓存到距离用户最近的边缘节点;
  • 本地缓存:以及还会涉及到本地缓存,比如:将热点数据缓存到应用服务器内存,如:Guava、Ehcache...等等都是使用较多的本地缓存。
  • 分布式缓存:通过 Redis、Memcached ...等技术实现多级缓存,支持水平扩展、和高可用。

负载均衡

负载均衡,也是高并发的常见手段。

image.png

常见的负载均衡,有硬件的负载均衡、以及软件的负载均衡。

比如:

硬件负载均衡器

如 F5、A10 ...等,硬件的效果最好,但是就是比较贵。

软件负载均衡

如 Nginx、LVS、HAProxy ...等,软件负载均衡相对硬件效果差一点,但是省钱啊。

分库分表

当数据量比较大的时候,都会考虑到“分库分表”,这里就会涉及到:垂直拆分、和水平拆分...等等拆分方式。

image.png

  • 垂直分库:按业务模块拆分,例如将用户表、订单表分到不同的数据库。
  • 水平分库:将同一张表的数据按一定规则(如用户 ID)分到不同的数据库实例上。
  • 分表:将数据按一定规则分成多个表存储,减少单表的数据量和索引压力。

消息中间件

如果数据库压力大,你肯定想到缓存,除此之外,就会涉及到消息中间件,这也是一大利器。

通过消息队列进行异步处理,解耦系统组件,避免高峰期的请求压力直接传递到数据库、或后端系统。

比如:高并发最典型的场景,就是:异步处理、削峰填谷、...等等。

image.png

削峰填谷:是高并发系统中常用的一种架构设计模式,主要用于平衡系统在高并发场景下的负载压力。

它的核心思想:削峰、和填谷。

削峰

什么是削峰呢?

削峰就是:在并发请求达到峰值时,系统无法在短时间内处理所有请求,可以通过一些手段将请求削减,或者暂时存储起来,这就是削峰。

image.png

当请求量过大时,生产者(发起请求的一方)会将请求写入消息队列,消费者(处理请求的一方)则以相对较慢的速度从队列中读取数据并处理,这样系统不至于在短时间内被大量请求压垮。

通过“削峰”的方式,可以避免系统在短时间内被巨量的请求压垮。

填谷

填谷就是:当系统处于较低负载时,可以从之前存储的请求中逐步取出,充分利用系统的剩余资源来处理这些积压的任务或请求。

比如:当请求量减少时,消费者继续从队列中获取消息处理,保证资源充分利用,不会因为请求量减少而让资源闲置。

最典型的场景:就是秒杀活动,通常会产生大量瞬时请求,系统往往无法在同一时间处理所有请求。

可以使用消息队列对请求进行缓冲,后台逐步处理订单,避免系统崩溃。

以上,是 QPS 多少才算高并发详细解析,欢迎评论区留言交流或拓展。

我是 mikechen | 陈睿 ,关注【mikechen的互联网架构】,10年+BAT架构技术倾囊相授。

新的架构专题内容,第一时间更新至:阿里架构师进阶全部合集

本文已同步我的技术博客 www.mikechen.cc,更新至我原创的《30W+字阿里架构技术合集》中。

相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
消息中间件 JavaScript 小程序
面试官:你了解 QPS、TPS、RT、吞吐量 这些高并发性能指标吗?
面试官:你了解 QPS、TPS、RT、吞吐量 这些高并发性能指标吗?
|
监控 前端开发 JavaScript
不了解 QPS、TPS、RT、并发数、吞吐量,劝你简历别写熟悉高并发
分布式、微服务、Service Mesh目前都是大家耳熟能详的词语了,现在随便一个互联网公司说出来大家都是在搞微服务。 但我们搞来搞去,怎么样来衡量一个应用当前的状态到底是怎么样的?到底需不需要扩容?是需要横向扩容还是进行项目重构?
|
1月前
|
架构师 Java 测试技术
一文搞透高并发指标(QPS、TPS、吞吐量等)
详解高并发场景下的QPS、TPS、RT及吞吐量等关键性能指标,帮助理解系统性能评估的核心概念。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
一文搞透高并发指标(QPS、TPS、吞吐量等)
|
4月前
|
算法 关系型数据库 MySQL
技术分享:600W QPS高并发ID设计与时钟回拨解决方案
【8月更文挑战第26天】在大型分布式系统中,高并发ID生成和时钟同步是两个至关重要的技术挑战。随着业务量的快速增长,如美团点评的金融、支付、餐饮等业务场景,每秒需要处理数百万级别的请求,这就对ID的生成效率和唯一性提出了极高要求。同时,时钟回拨问题也时常困扰着系统管理员,影响数据一致性和系统稳定性。本文将围绕这两个主题,分享一些工作学习中的技术干货。
72 1
|
缓存 JSON 网络协议
高并发场景下的 HttpClient 优化,QPS 大大提升!
高并发场景下的 HttpClient 优化,QPS 大大提升!
|
Linux 数据库
连 QPS,TPS,RT,PV,UV 这些指标都不知道是什么意思,还敢说自己懂高并发?
连 QPS,TPS,RT,PV,UV 这些指标都不知道是什么意思,还敢说自己懂高并发?
451 0
|
7月前
|
消息中间件 Java Linux
2024年最全BATJ真题突击:Java基础+JVM+分布式高并发+网络编程+Linux(1),2024年最新意外的惊喜
2024年最全BATJ真题突击:Java基础+JVM+分布式高并发+网络编程+Linux(1),2024年最新意外的惊喜
|
6月前
|
缓存 NoSQL Java
Java高并发实战:利用线程池和Redis实现高效数据入库
Java高并发实战:利用线程池和Redis实现高效数据入库
540 0
|
4月前
|
监控 算法 Java
企业应用面临高并发等挑战,优化Java后台系统性能至关重要
随着互联网技术的发展,企业应用面临高并发等挑战,优化Java后台系统性能至关重要。本文提供三大技巧:1)优化JVM,如选用合适版本(如OpenJDK 11)、调整参数(如使用G1垃圾收集器)及监控性能;2)优化代码与算法,减少对象创建、合理使用集合及采用高效算法(如快速排序);3)数据库优化,包括索引、查询及分页策略改进,全面提升系统效能。
56 0
|
6月前
|
存储 NoSQL Java
探索Java分布式锁:在高并发环境下的同步访问实现与优化
【6月更文挑战第30天】Java分布式锁在高并发下确保数据一致性,通过Redis的SETNX、ZooKeeper的临时节点、数据库操作等方式实现。优化策略包括锁超时重试、续期、公平性及性能提升,关键在于平衡同步与效率,适应大规模分布式系统的需求。
203 1