SpringBoot 内嵌Tomcat的默认线程配置
https://www.cnblogs.com/silenceshining/p/14058944.html
SpringBoot中如果使用内嵌Tomcat,那么内嵌Tomcat的默认配置在ServerProperties(org.springframework.boot.autoconfigure.web)中,具体内容如下:
复制代码
private int maxThreads = 200;
private int minSpareThreads = 10;
private int maxConnections = 10000;
private int acceptCount = 100;
}
复制代码
内嵌Tomcat使用的默认协议为NIO,配置在TomcatServletWebServerFactory类中,如下:
复制代码
public class TomcatServletWebServerFactory extends AbstractServletWebServerFactory
implements ConfigurableTomcatWebServerFactory, ResourceLoaderAware {
private static final Charset DEFAULT_CHARSET = StandardCharsets.UTF_8;
private static final Set> NO_CLASSES = Collections.emptySet();
public static final String DEFAULT_PROTOCOL = "org.apache.coyote.http11.Http11NioProtocol";
private File baseDirectory;
…
}
复制代码
总结:
springboot 内置的Tomcat采用NIO协议,配置的参数为server.tomcat.maxThreads 200,
server.tomcat.maxConnections 1000,
server.tomcat.acceptCount 100。
可以修改为
server.tomcat.maxThreads 800,
server.tomcat.maxConnections 10000,
server.tomcat.acceptCount 100。
理论上来讲同一时刻可以处理200个请求(200个线程处理200个耗时操作),但其实可以同时接受10000个请求连接,以及大于10000个连接时,还可以再等待100个连接。



