gpt4 book ai didi

java - 服务并发请求的 Tomcat 服务器

转载 作者:行者123 更新时间:2023-11-28 23:29:25 25 4
gpt4 key购买 nike

在处理并发请求时,Tomcat 出现以下问题:

我创建了一个模拟网络服务,我使用 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"/>

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

最佳答案

奇怪,因为您有足够的并发线程 (maxThreads=150) 来同时处理 50 个请求。但是,Executor 可以与其他连接器共享,因此线程有可能在别处使用吗?更有可能我会说这应该有效,也许上面的配置尚未激活。如果您从 Eclipse 中更改了它,您是否执行了“发布”(在服务器 View 中,右键单击 tomcat 服务器并选择“发布”)?然后重启tomcat。

关于java - 服务并发请求的 Tomcat 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32521734/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com