Tomcat服务器提供并发请求

时间:2015-09-11 10:53:09

标签: java multithreading tomcat

在提供并发请求时,Tomcat遇到以下问题:

我创建了一个模拟Web服务,我使用Thread.sleep(time)来定义模拟服务的执行时间。我将此服务部署到Tomcat。

我创建了一个客户端,可以同时向服务发送多个请求(50个请求)。

当我将执行时间设置为较小的数字(例如2000毫秒)时,会成功返回50个请求。但是,当我将执行时间设置为更大的数字(例如5000毫秒)时,某些请求会失败。执行时间越大,导致失败次数越多。

我一直在玩Tomcat的线程池配置,但到目前为止还没有帮助。我的Tomcat连接器的当前配置如下:

<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
    maxThreads="150" minSpareThreads="4"/>
<Connector executor="tomcatThreadPool" 
            port="8080" 
            protocol="org.apache.coyote.http11.Http11NioProtocol" 
            connectionTimeout="2000000" 
            acceptCount="50" 
            redirectPort="8443"/>

有人可以建议我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

奇怪,因为你有足够的并发线程(maxThreads=150)来同时处理50个请求。然而,Executor可以与其他连接器共享,因此线程在其他地方使用的可能性很小? 我更有可能说这应该有效,也许上面的配置还没有激活。如果您在Eclipse中更改了此项,那么您是否进行了“发布”(在服务器视图中,右键单击tomcat服务器并选择“发布”)?然后重启tomcat。

相关问题