Java 如果达到最大螺纹数,自定义树脂4.0.32的性能

Java 如果达到最大螺纹数,自定义树脂4.0.32的性能,java,threadpool,resin,Java,Threadpool,Resin,首先,我不太确定如果树脂独立服务器4.0.32达到最大线程数会发生什么。根据我的观察,Resin要么暂停请求(按顺序处理),要么断开连接。但我不知道树脂是怎么决定的。 所以我想知道这背后发生了什么 另外,我想知道是否可以针对这种情况自定义服务器的行为,因此假设resin已达到允许的最大线程数。对于队列中的请求,如果它们在队列中的时间超过2分钟,我希望服务器向客户端返回503。这是可以实现的吗 如有任何意见或信息,我们将不胜感激。多谢各位 我们使用的是Resin 4.0.32开源版本,java 1

首先,我不太确定如果树脂独立服务器4.0.32达到最大线程数会发生什么。根据我的观察,Resin要么暂停请求(按顺序处理),要么断开连接。但我不知道树脂是怎么决定的。 所以我想知道这背后发生了什么

另外,我想知道是否可以针对这种情况自定义服务器的行为,因此假设resin已达到允许的最大线程数。对于队列中的请求,如果它们在队列中的时间超过2分钟,我希望服务器向客户端返回503。这是可以实现的吗

如有任何意见或信息,我们将不胜感激。多谢各位


我们使用的是Resin 4.0.32开源版本,java 1.6_16

ferg在Caucho官方论坛上确认了以下行为:

通常情况下,您不应该达到线程最大值,因为线程最大值 设置为远高于应用程序通常应达到的数字

但是,如果是,则挂起的线程execute()将排队。最后,其中一个线程将完成并获取请求的execute()

(除非您故意将线程最大值设置为非常低的值,这可能意味着所有线程都在做有用的事情。但是没有理由这么做。线程相对便宜。)

因此,这证实了我的观察,即在达到允许的最大线程数后,另一个请求将排队处理。此外,如果服务器无法处理更多的请求,则某些请求将被拒绝

关于我的第二个问题,关于我们是否可以定制返回503请求,我做了更多的研究,我得出结论,这不能用resin standalone完成,因为我找不到任何关于它的信息。我唯一能找到的是,当web服务器无法连接到resin app server时,Apache web服务器在使用resin application server时将返回503

希望这有帮助