java - 如何为 Tomcat 并行运行多个 servlet 执行?

标签 java jakarta-ee tomcat concurrency

我有一个 Tomcat 应用程序,我需要两个不同的 servlet 或同一个 servlet 来并行响应我的请求。案例是我有一个要求下载医学影像的第一个请求,我有另一个 AJAX 客户端请求在第一个请求完全完成之前获取图像。但是由于某种原因,服务器直到第一个请求结束后才响应我的第二个请求。

为了实现并发 servlet 执行,必须改变什么?我们有一个非常好的服务器,有多个驱动器、多个内核。我正在使用 Tomcat 6。任何探索的想法都会很棒。

最佳答案

如果发生这种情况,则与 Tomcat 无关。可能您在某处使用同步(隐式或显式)。

但是您可以明确地管理线程池:

 <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
               maxThreads="150" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS" />

<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
        maxThreads="150" minSpareThreads="4"/>

<Connector executor="tomcatThreadPool"
               port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

即您可以指定最大线程数或使用线程池。更多信息在这里http://tomcat.apache.org/tomcat-5.5-doc/config/http.html

关于java - 如何为 Tomcat 并行运行多个 servlet 执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10183484/

相关文章:

java - 使用 enctype ="multipart/form-data"时请求 getParameter 始终为 null

eclipse - 无需停止和启动即可将 Eclipse Spring MVC 项目部署到 Tomcat

hibernate - struts2+hibernate java.lang.reflect.InvocationTargetException 异常

java - FloatingActionButton 与 RecyclerView 中的 CardView 重叠

java - Java中包含()的最快数据结构?

java - 什么是汤姆猫? Web 容器还是 EE 容器?

java - 如何使用硬编码的 html 页面发送 servlet 响应?

java - 打包 Tomcat

java - 将多部分文件上传到 AWS 而无需在本地保存

java - 运行线程时,旋转变换无法在重新绘制中正常工作