SpringBoot项目并发处理大揭秘,你知道它到底能应对多少请求洪峰?

本文通过实践演示和源码解析,揭示了SpringBoot项目在默认配置下的最大并发数限制,重点关注了Tomcat的核心配置和如何通过`server.tomcat.max-threads`进行调整。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、项目搭建

二、验证最大并发数

三、源码分析

        3.1 Tomcat 核心配置讲解


        Spring 生态的重要性不用多说,Spring Boot 已经成为 Java 后端开发的"标准",但是一个Spring Boot 项目到底能同时应对多少请求呢?你有没有考虑过这个问题呢?这时你可能会问,处理的业务是什么?服务的配置是什么样的?使用的 WEB 容器是什么等等问题,当然我们说的是默认配置,即什么也不配置的情况下到底能应对多少并发请求?

        下面我们通过项目演示逐步深入到源码内部,带你去揭开谜底,首先是项目搭建。

一、项目搭建

        项目结构很简单,三个类,一个配置文件,其中一个还是启动类,使用的Spring Boot 版本是 2.2.1.RELEASE。

        添加依赖

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
    </dependency>
    <dependency>
        <groupId>cn.hutool</groupId>
        <artifactId>hutool-all</artifactId>
        <version>5.4.0</version>
    </dependency>
</dependencies>

        测试接口代码

@Slf4j
@RestController
public class TestController {

    @GetMapping("/testRequest")
    public void test(int num) throws InterruptedException {
        log.info("{} 接受到请求:num={}", Thread.currentThread().getName(), num);
        // 这里让线程睡眠时间长,保证会阻塞住,方便验证
        TimeUnit.HOURS.sleep(1);
    }
}

        下面在来看调试代码,当然你可以使用 Jmeter 等压测工具,这样显的高达上,这里我们使用一个循环不断调用测试接口,具体代码如下:

public class RequestTest {

    public static void main(String[] args) {
        for (int i = 0; i < 1000; i++) {
            int finalI = i;
            new Thread(() -> {
                HttpUtil.get("http://127.0.0.1:8080/testRequest?num=" + finalI);
            }).start();
        }
        // 阻塞主线程
        Thread.yield();
    }
}

        注意,我们的 application.properties 配置文件中什么内容也没有添加。

二、验证最大并发数

        首先启动项目,让服务跑起来,然后运行 RequestTest.main,这时我们的接口就会收到大量的请求,具体如下:

        接下来,我们直接统计打印的日志,就能统计出处理了多少并发请求。通过下图可以看到࿰

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

超越不平凡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值