我在Tomcat中遇到了缓存请求的问题。每当我(重新)启动我的应用程序时,Tomcat就会在应用程序完全初始化之前开始缓存传入的请求。
有没有办法阻止Tomcat表现得像这样?我在-Element中找到了“cachingAllowed”选项,但我对此并不确定。
请告诉我们,如何在初始化所有内容之前阻止Tomcat缓存。我希望缓存请求的点是服务器启动完成时。
非常感谢,
马克
答案 0 :(得分:1)
您描述的效果称为请求排队。默认情况下,Tomcat启动并侦听其配置的端口。当第一个请求进入时,它会触发部署和启动相应的Web应用程序。在应用程序启动之前进入的所有请求都将被阻止,并在应用程序启动完成时开始处理。
上面的描述略有简化,因为根据您的Tomcat连接器类型和配置,请求可以阻止和排队的区域不同:
maxThreads
控制。maxConnections
控制。acceptCount
控制。 (顺便说一句:我把它设为0)如上所述,参数的详细工作方式可能因连接器类型而异。
这是您可以控制限制和理解正在发生的事情的方法。我认为将acceptCount设置为0会使效果更好。
实际上,同样的问题和问题在:how to make http port to open after application startup in tomcat也没有真正的答案。它接缝这不是Tomcat的设计工作方式。我能想到的解决方案,但尚未尝试过: