Apache Tomcat 9.0.76更新致Servlet单并发连接,能否通过配置修复?
问题根源与解决方案
你遇到的问题确实是Tomcat 9.0.76中编号66513的修复导致的——这个修复给PersistentValve添加了单Session并发请求限制,默认每个Session只能同时处理1个请求,其他同Session的请求会排队等待。
不需要回滚版本,通过以下配置修改就能解决:
方法1:完全禁用单Session并发限制
在Tomcat的配置文件中添加/修改PersistentValve的配置,关闭该限制:
- 如果要全局生效(所有应用),编辑
conf/context.xml,在<Context>标签内添加:<Valve className="org.apache.catalina.valves.PersistentValve" restrictConcurrentRequestsPerSession="false" /> - 如果只针对单个应用生效,编辑项目的
META-INF/context.xml,添加同样的Valve配置。
方法2:调整单Session允许的并发数
如果不想完全禁用,只是需要更高的并发量,可以设置允许的最大并发请求数(比如设为5):
<Valve className="org.apache.catalina.valves.PersistentValve" restrictConcurrentRequestsPerSession="5" />
修改完成后重启Tomcat,再测试多并发请求即可恢复之前的行为。
内容的提问来源于stack exchange,提问作者Rocco
相关产品推荐
相关产品推荐

