https://blog.csdn.net/bareape/article/details/127117525

常见软件的 QPS

这里给出的 QPS 仅供参考,实际项目需要进行压测来计算。

Nginx :一般情况下,系统的性能瓶颈基本不会是 Nginx。单机 Nginx 可以达到 30w +。

Redis: Redis 官方的性能测试报告https://redis.io/topics/benchmarks 。从报告中,我们可以得出 Redis 的单机 QPS 可以达到 8w+(CPU 性能有关系,也和执行的命令也有关系比如执行 SET 命令甚至可以达到 10w+QPS)。

MySQL: MySQL 单机的 QPS 为 大概在 4k 左右。

Tomcat :单机 Tomcat 的 QPS 在 2w 左右。这个和你的 Tomcat 配置有很大关系,举个例子 Tomcat 支持的连接器有 NIO、NIO.2 和 APR。AprEndpoint 是通过 JNI 调用 APR 本地库而实现非阻塞 I/O 的,性能更好,Tomcat 配置 APR 为 连接器的话,QPS 可以达到 3w 左右。更多相关内容可以自行搜索 Tomcat 性能优化。

不同的框架对并发量的支持会有所不同,具体取决于框架的设计、实现和配置等因素。以下是一些常见框架的并发量范围:

Servlet 容器(如 Tomcat、Jetty):通常支持数千到数万的并发连接。

Spring 框架:Spring 本身不直接处理并发,但是它可以与支持高并发的技术如 Netty、Vert.x 等集成,因此具体并发量取决于所使用的技术。

Netty:Netty 是一个高性能、异步的网络编程框架,可以支持数万并发连接。

Akka:Akka 是一个基于 Actor 模型的并发框架,可以支持数百万的并发连接。

Redis:Redis 是一个内存数据库,可以支持数十万到数百万的并发连接。

需要注意的是,并发量的具体范围不仅取决于框架本身,还取决于硬件配置、操作系统和网络环境等因素。因此,在实际应用中,需要根据具体情况进行测试和评估。

Tomcat:Tomcat 是一种常用的 Servlet 容器,可以支持高并发的 Web 应用程序。根据官方文档,Tomcat 9 可以支持数万个并发连接,具体取决于硬件配置和网络环境等因素。此外,Tomcat 还提供了一些可配置的参数,可以对并发连接数、线程池大小、缓存大小等进行优化。

Jetty:Jetty 是另一种常用的 Servlet 容器,也可以支持高并发的 Web 应用程序。根据官方文档,Jetty 9 可以支持数万个并发连接,具体取决于硬件配置和网络环境等因素。与 Tomcat 类似,Jetty 也提供了一些可配置的参数,可以对并发连接数、线程池大小、缓存大小等进行优化。

Netty:Netty 是一个高性能的网络编程框架,可以支持数万到数百万的并发连接。根据官方文档,Netty 可以支持每秒数百万次的消息传输,具体取决于硬件配置和网络环境等因素。与 Servlet 容器不同,Netty 是一个通用的网络编程框架,可用于构建各种类型的网络应用程序。

Akka:Akka 是一个基于 Actor 模型的并发框架,可以支持数百万的并发连接。根据官方文档,Akka 可以支持每秒数百万次的消息传输,具体取决于硬件配置和网络环境等因素。与 Netty 类似,Akka 是一个通用的并发框架,可用于构建各种类型的并发应用程序。

需要注意的是,并发连接数只是衡量并发能力的一个指标,还需要考虑每个连接的处理时间、资源消耗等因素。因此,在实际应用中,需要综合考虑多个因素,进行适当的优化和测试。