解释tomcat执行程序中的maxQueueSize

时间:2015-06-03 07:26:09

标签: tomcat threadpoolexecutor

请澄清tomcat执行器中参数maxQueueSize的含义。

另一个问题 - 它是否与tomcat连接器中的acceptCount相关联?

提前致谢。

1 个答案:

答案 0 :(得分:1)

这是非常好的here

  

每个传入的请求都需要一个线程   请求。如果收到的请求数量多于同时发送的请求数   由当前可用的请求处理线程处理,   将创建额外的线程,直到配置的最大值(    maxThreads 属性的值)。如果还是更加同步   收到请求后,它们会堆叠在服务器套接字内   由Connector创建,最多为配置的最大值(值为    acceptCount 属性)。任何进一步的同时请求将   收到"连接拒绝"错误,直到资源可用   处理它们。

maxQueueSize: - 在我们拒绝之前可以排队等待执行的可运行任务的最大数量。默认值为Integer.MAX_VALUE

参数 acceptCount 与TCP队列相关。在此队列中,即使无法立即处理,操作系统也可以保留一定数量的连接。这个概念是特定于操作系统的 - 对于Linux,您可以通过引用here来理解这一点,而更多的见解是here

maxQueueSize 是包含实际请求处理任务的队列,可以通过 atmost maxThreads线程数运行。它们实际上在队列中的原因是处理线程的数量有限,并且任务在被Executor选中并分配给可以自由执行任务的线程之前在队列中花费一些时间。