QPS多少才算高并发(看这篇就够了)

文摘   2024-11-05 19:58   四川  

关注mikechen十余年BAT架构经验倾囊相授!


大家好,我是mikechen。

QPS多少才算高并发经常被问到,下面我就详解QPS多少才算高并发以及常用解决方案@mikechen


最新mikechen原创超30万字《阿里架构师进阶专题合集》和《大厂最全面试题及答案合集》,请关注本公众号【mikechen的架构笔记】,后台回复:合集,即可领取。

什么是高并发

高并发,是指系统在单位时间内承受大量用户请求的能力,一般衡量高并发的指标包括:QPS(每秒查询率)等。

高并发的通常,取决于具体的应用场景、和业务需求,比如:最典型的就是阿里“双11”,峰值完成“58.3万/笔”订单,这就是典型的高并发。

QPS多少算高并发

通常根据每秒查询次数(QPS, Queries Per Second)来,判断并发量的高低。

一般,可以分为如下几类:

小规模并发

QPS在100以下的场景通常视为低并发,比如一些内部应用、工具类网站或小型应用。

中等并发

QPS在100到1000之间,这一范围内的系统通常需要一定的优化和分布式架构支持,如:中型电商网站、社交媒体应用..等。

高并发

QPS在1000到10,000之间的场景可以算是高并发,需要引入缓存、异步处理、数据库分片等技术,常见于大型电商、金融系统、在线直播平台...等。

超高并发

QPS超过10,000,甚至达到100,000+,这类系统通常是大流量的互联网平台。

阿里、淘宝、拼多多...等,比如:阿里“双11”,峰值完成“58.3万/笔”订单,这就是典型的朝高并发。

因此,在实际项目中,通常认为QPS超过"1000"即为高并发,而QPS超过"10,000"则可以称为超高并发。

超高并发需要更复杂的架构,如:多层缓存、分布式计算、微服务架构、消息队列和负载均衡...等等技术。

多级缓存
通过缓存减少对数据库的直接访问次数,加快请求响应速度。

例如:

本地缓存

在应用内存中缓存常用的数据,减少重复查询。

分布式缓存

Redis、Memcached...等分布式缓存系统,用于缓存跨应用、跨服务器的数据。

高并发场景下,频繁查询数据库会导致瓶颈,缓存可以拦截一部分请求,减少对数据库的读压力。

如下图所示:

Redis、Memcached...等等, 可以将数据库中频繁读取的数据放入缓存中,应用层首先访问缓存,只有在缓存未命中的情况下才去访问数据库。

CDN缓存

在全球分布的节点上缓存静态资源,加速资源分发,减轻源服务器压力。

负载均衡

载均衡将用户请求分配到多个服务器上,以减轻单个服务器的压力。

如下图所示:

常见的负载均衡方式有:

硬件负载均衡

硬件负载均衡设备,具有强大的处理能力、和专用芯片,可以处理复杂的负载均衡任务,适用于极高并发、和大规模流量的场景。

比如:F5、A10...等,这些设备自带高性能的处理器、和网络接口,能够以极低延迟、和高吞吐量处理网络请求。。

硬件设备什么都好,唯一的缺点就是“贵”,一般硬件设备的采购和维护成本高,通常只在企业级、或关键业务系统中使用。

软件负载均衡

相对于硬件负载均衡设备“贵”,所以后面出现了大量的免费的软件负载均衡。

比如:Nginx、HAProxy、Apache ...等开源软件实现负载均衡。

  • Nginx:轻量级、高性能的 HTTP 、和反向代理服务器,适合 Web 服务的负载均衡;

  • HAProxy:专注于高可用性、负载均衡和代理的开源软件,支持四层(TCP)和七层(HTTP)负载均衡;

  • Apache:作为 Web 服务器也提供了负载均衡模块,适合与其他 Apache 服务集成。

其实很多业务需求,包括:阿里、字节等大厂,都是采用硬件和软件负载均衡,二者结合使用。

形成多层负载均衡体系,以保证系统的高可用性和高并发处理能力。

分库分表

分库分表是将数据分布在多个数据库或表中,减小单个数据库的负担。

常见方法包括:

垂直拆分:按业务模块分拆数据库,例如将用户数据和订单数据放在不同的库中。

水平拆分:按数据范围分拆表,例如按用户ID分库,或按订单ID分表。

消息中间件削峰

消息中间件(如:Kafka、RabbitMQ、RocketMQ...等),除了能够解耦服务间的依赖,还有就是:“流量削峰”。

如下图所示:

流量削峰,是一种应对突发性高流量的技术手段,旨在平滑系统请求量,避免系统在短时间内遭遇峰值流量的冲击,从而防止过载导致的性能下降、或系统崩溃。

这些架构和技术的方案,大部分情况都是结合使用,来解决高并发的场景。

以上


最后送大家一个福利:

送我原创超30万字阿里架构师进阶专题合集


以及给大家整理最全大厂Java面试题及答案详解,包含:Java、多线程、JVM、Spring、MySQL、Redis、中间件...等必考题答案详解。


需要以上架构专题&面试答案的同学,加我微信即可领取!


添加时备注:资料


mikechen的架构笔记
十余年BAT架构经验倾囊相授!
 最新文章