请澄清tomcat执行器中参数maxQueueSize
的含义。
另一个问题 - 它是否与tomcat连接器中的acceptCount
相关联?
提前致谢。
答案 0 :(得分:1)
这是非常好的here
每个传入的请求都需要一个线程 请求。如果收到的请求数量多于同时发送的请求数 由当前可用的请求处理线程处理, 将创建额外的线程,直到配置的最大值( maxThreads 属性的值)。如果还是更加同步 收到请求后,它们会堆叠在服务器套接字内 由Connector创建,最多为配置的最大值(值为 acceptCount 属性)。任何进一步的同时请求将 收到"连接拒绝"错误,直到资源可用 处理它们。
maxQueueSize: - 在我们拒绝之前可以排队等待执行的可运行任务的最大数量。默认值为Integer.MAX_VALUE
参数 acceptCount 与TCP队列相关。在此队列中,即使无法立即处理,操作系统也可以保留一定数量的连接。这个概念是特定于操作系统的 - 对于Linux,您可以通过引用here来理解这一点,而更多的见解是here。
maxQueueSize 是包含实际请求处理任务的队列,可以通过 atmost maxThreads线程数运行。它们实际上在队列中的原因是处理线程的数量有限,并且任务在被Executor选中并分配给可以自由执行任务的线程之前在队列中花费一些时间。