tomcat - 线程和JMS哪个更好?

标签 tomcat servlets multithreading jms

如果我想在多用户环境(通过 tomcat-servlet)中运行一个流程(完成此流程所需的时间以小时为单位),哪个更好地实现此流程? 1) 在线程中或 2) 在 JMS 中 有什么优点和缺点?

最佳答案

不确定您到底如何设想使用 JMS,通常的做法是让客户端将请求弹出到队列中,并让一些(可配置的)工作线程拉出请求并为它们提供服务。就我而言,我有一个 MDB 作为让这些工作线程运行的机制 - 但这只是一个实现细节。

所以我不认为线程和 JMS 是替代方案,更多的是 JMS 为您提供了一种使用线程的可控方式。您几乎肯定需要避免同时处理太多请求,因此从概念上讲您需要队列,也可以使用 JMS 来实现这一点。

需要弄清楚各种细节,例如如何传达结果,确保浏览器不会闲置几个小时。某种 Ajax 轮询,或者 Comet 推送?

另一个想法 - 单个处理 block 需要几个小时?这可能会受益于分解为多个步骤(可能再次由 JMS 队列调解)。这样,崩溃就不会让一切回到原点。

关于tomcat - 线程和JMS哪个更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1211857/

相关文章:

java - 有没有办法在 Apache Tomcat 6.x 启动期间执行代码来执行初始化例程等?

java - tomcat7 出现内存不足错误

java - Tomcat 7 javax.el.E​​LException 异常

java - spring mvc - 在重定向期间保留http header

java - 更改web app中的java类文件需要重新构建完整的项目并部署

java - 在 JSP 中,如何动态设置 contentType?

wpf - 您如何避免不确定的进度条卡住?

c# - 在 C# 中创建线程

c - 如何知道现有 Openmp 线程的数量

apache - 如何使用 mod_proxy 保留通过 AJP 连接器发送到 Apache 的 Tomcat HTTP 响应的 Content-Type header