要回答这个问题前,我们需要先了解几个参数:
server:
tomcat:
threads:
min-spare: 10
max: 200
max-connections: 100
accept-count: 100
参数含义
server.tomcat.threads.min-spare:最小线程数。
server.tomcat.threads.max:最大线程数。
server.tomcat.max-connections:最大连接数。
server.tomcat.accept-count:最大等待数。
当连接请求过来时,首先会交给min-spare线程处理,当min-spare线程处理不过来时,会创建临时线程来处理,创建的临时线程数量+min-spare线程数量不能超过max线程数量,即最大线程数量不能超过max个线程。
max-connections是最大的连接数,当连接数超过max-connections的时候,连接会进入等待队列;accept-count即为等待队列的长度。当等待队列也满了后,连接请求将会进行等待(等待时间大小为客户端设置的连接时间大小),如果在等待连接时间内,有连接处理完成,那么连接请求就能进入等待队列里等待执行;如果在等待连接的时间内,没有连接处理完成,则连接请求将会出现connected timeout异常。
所以,springboot内置的tomcat同时能处理的请求数量等于:max-connections数量+accept-count数量。max-connection默认值为8192,accept-count默认值为100,所以默认能同时处理的请求个数为8292。