问题描述
1000+ jobs running through our service in a day and around 70-80 jobs starting at the same time and running parallelly
附近。
为解决这个问题,我们认为将最大线程数增加到Spring应用程序的server.tomcat.max-threads
属性应该可以,但是我对所有可能带来的副作用没有完全的信心该属性的数量很大,例如800
。
能在这里帮忙吗?
解决方法
Tomcat的默认安装将HTTP服务线程的最大数量设置为200。实际上,这意味着系统最多可以同时处理200个HTTP请求。当同时进行的HTTP请求数超过此计数时,未处理的请求将放入队列中,并在处理线程可用时为该队列中的请求提供服务。该默认队列长度为100。在这些默认设置下,可以同时生成300个以上请求的大型Web负载将超过线程可用性,从而导致服务不可用(HTTP 503)。
更多参考:https://docs.bmc.com/docs/brid91/en/tomcat-container-workload-configuration-825210082.html
How to run multiple servlets execution in parallel for Tomcat?
如果这是类似配置的批处理作业,则可以使用spring批处理。