繁体   English   中英

为多个同时的SOAP请求配置Tomcat

[英]Configure Tomcat for multiple simultaneous SOAP requests

我非常是Tomcat的新手,所以我猜想答案很简单,但是Google今天对我并不友好。

我在Apache Tomcat上安装了Java Web应用程序。 尽管该应用程序具有首页(出于诊断目的),但该应用程序实际上仅涉及SOAP接口。 没有客户端将永远不需要查找服务器的网页。 客户端将SOAP请求发送到服务器,服务器将解析请求,然后在数据库中查找结果。 然后将结果再次通过SOAP传递回客户端。

在其默认配置中,Tomcat似乎将请求排队。 我的实验包括将客户端安装在指向同一台服务器的两台不同的计算机上,并在完全相同的时间运行搜索(嗯,一台比另一台晚了0.11秒,但您可以看到图片)。

如何配置并发请求线程数? 我的理想配置是让X个请求线程每隔Y分钟或在Z请求之后(以较早者为准)自动回收自身(即调用析构函数和构造函数并回收其内存分配)。 有人告诉我可以配置IIS来做到这一点(尽管我也没有IIS的经验),但是如何使用Tomcat来做到这一点?

我希望能够回收线程,因为当请求进入时Tomcat似乎正在抢占内存而不释放它,这意味着在接近内存限制时,我偶尔会(但不一致)出现Java堆空间错误(我已经将其配置为2GB服务器上的1GB)。 我不确定这是否是由于我的应用程序中的内存泄漏引起的,还是我正在使用的工具使用了大量的内存,我不是100%确定。

任何建议将不胜感激。

谢谢,瑞克

Tomcat默认情况下最多可以处理150个并发HTTP请求-这是完全可配置的,并且显然会因服务器规格和应用程序而异。

但是,如果您的应用程序必须处理“突发”连接,则建议您查看Tomcat的最小和最大“备用”线程。 这些是正在积极等待连接的线程。 如果没有足够的等待线程,则Tomcat必须分配更多的线程(这会产生少量开销),因此您可能会看到延迟。

另外,请看一下我对这个问题的回答,其中涵盖了如何配置连接器:

Tomcat HTTP连接器线程

另外,请看一下基本的JVM调整-特别是在堆分配开销和GC暂停时间方面。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM