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