SpringBoot max-threads设置方式(2.3 版本以后)

Posted ISaiSai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot max-threads设置方式(2.3 版本以后)相关的知识,希望对你有一定的参考价值。

目前网上文章写设置SpringBoot tomcat 的max_threads 的方法为:server.tomcat.max-threads=250

但是在springboot 2.3 以后已经修改为 server.tomcat.threads.max=400

老的设置会不生效

验证方法


@Configuration
public class EmbedTomcatConfig 
    @Bean
    WebServerFactoryCustomizer<ConfigurableServletWebServerFactory> tomcatSetProtocol()
        return factory -> 
            ((TomcatServletWebServerFactory) factory).addConnectorCustomizers(connector -> 
                ProtocolHandler protocol = connector.getProtocolHandler();
                String res=String.format("Tomcat(%s)  -- MaxConnection:%s;MaxThreads:%s;MinSpareThreads:%s",                         protocol.getClass().getName(),
                        ((AbstractHttp11Protocol<?>) protocol).getMaxConnections(),
                        ((AbstractHttp11Protocol<?>) protocol).getMaxThreads(),
                        ((AbstractHttp11Protocol<?>) protocol).getMinSpareThreads());
                System.out.println(res);
            );
        ;
    

max_threads 的最佳实践为CPU内核数量的*200
默认的maxThreads 是200 (适合开发环境)
默认配置代码在:org.springframework.boot.autoconfigure.web.ServerProperties.Tomcat.Threads
参考文档:https://www.baeldung.com/java-web-thread-pool-config#1-embedded-tomcat

以上是关于SpringBoot max-threads设置方式(2.3 版本以后)的主要内容,如果未能解决你的问题,请参考以下文章

springboot x.x.x RELEASE不同版本的差异

如果我给 server.tomcat.max-threads 一个很大的值来处理我的应用程序的负载,会发生啥?

SpringBoot 内置 Tomcat 线程数优化配置,你学会了吗?

server.tomcat.max-threads VS corePoolSize VS spring.datasource.tomcat.max

春季最大(客户端请求)线程池大小

Spring Boot 连接池理解