我有一个部署在Apache Tomcat服务器上的Grails应用程序。一切正常但有时候应用程序会连续收到大约100-200个请求(由于API集成,这些很多请求都是由API发送到我的应用程序,也是在几分钟之内,而不是我的应用程序到API)和tomcat开始挂起(虽然没有错误)。
请求主要是从所使用的API发送的数据中执行一些小的DB更新。
我有办法解决这个问题吗?任何jvm设置或任何代码更改来处理这个?
答案 0 :(得分:2)
您需要增加tomcat服务器中的最大线程数
<Connector port="8080" address="localhost"
maxThreads="250" <!-- here -->
maxHttpHeaderSize="8192"
emptySessionPath="true" protocol="HTTP/1.1"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" />
答案 1 :(得分:0)
在增加NIO线程限制之前,请确保您的I'O
操作能够处理负载。如果无法处理加载线程的I/O
操作将再次迅速堆积,并且由于DB的反压而将达到NIO线程限制的阈值。