【问题标题】:parallel programming for tomcat web applicationTomcat Web 应用程序的并行编程
【发布时间】:2011-11-10 10:36:08
【问题描述】:

我正在编写一个要部署在 tomcat 上的 Web 应用程序。我正在写一个servlet。当我收到请求时,我需要调用其他 10 个不同的网站。然后汇总从所有人那里收到的响应并做出响应。现在,如果我按顺序调用每个网站,则需要很多时间。有没有办法并行完成这项任务? 我的意思是有没有办法同时调用 10 个网站?可以使用java多线程吗?

【问题讨论】:

    标签: java web-applications tomcat servlets parallel-processing


    【解决方案1】:

    考虑使用符合 Java EE 6 的应用服务器,例如 GlassFish。

    EJB 3.1 引入了异步方法调用:

    http://java.sun.com/developer/technicalArticles/JavaEE/JavaEE6Overview_Part3.html#asynejb

    http://download.oracle.com/javaee/6/tutorial/doc/gkkqg.html

    【讨论】:

    【解决方案2】:

    你可以使用线程,但如果你使用 HttpClient10 的连接池,它可能会容易得多。

    请参阅2.8.4 Pooling connection manager 了解更多配置详情。

    【讨论】:

    • 宁可使用HttpClient 版本 4(及更高版本)。
    • 我正在调查它。如果我成功了,会通知你的。谢谢大家
    • 我试过了,它有效。我认为这是正确的方法。谢谢你,约翰。
    • 我正在使用 ThreadSafeClientConnManager 在 java 应用程序中进行多线程处理。我的 ThreadSafeClientConnManager 对象是静态的,因此它会一直保留到应用程序运行为止。如果我从不调用 closeExpiredConnections() 或 closeIdleConnections() 会发生什么。从长远来看,它会导致我的应用程序崩溃吗?
    猜你喜欢
    • 2012-08-04
    • 1970-01-01
    • 2011-01-17
    • 2013-02-20
    • 1970-01-01
    • 1970-01-01
    • 2012-01-27
    • 2017-01-06
    • 1970-01-01
    相关资源
    最近更新 更多