【问题标题】:REST client multi threaded applicationREST 客户端多线程应用程序
【发布时间】:2014-09-17 18:12:38
【问题描述】:

我正在开发一个 Java 应用程序,它在一端接受 SOAP 请求,具有 1 到 50 个唯一 ID。我使用请求中的唯一 ID 进行 REST 调用并处理响应并将处理后的数据作为肥皂响应发回。如果我获得所有 50 个唯一 ID,性能将会受到影响,因为我依次调用 REST 服务 50 次。 我的问题是,

  1. 如果我将应用程序设为多线程,在获得更多唯一 ID 时生成新线程以进行 REST 调用,我是否会获得性能优势。
  2. 如果是这样我应该如何设计多线程,使用多个线程仅进行rest调用或同时在多个线程中处理REST响应数据并在处理后合并数据。
  3. 我搜索了 Apache REST 客户端的多线程实现,但找不到。谁能指出我正确的方向。

我正在使用 Apache Http 客户端。

谢谢,提前

【问题讨论】:

    标签: java multithreading rest soap


    【解决方案1】:
    1. 很可能值得这样做。假设您收到多个并发 SOAP 请求,您的吞吐量不会提高,但延迟会提高。
    2. 您可能希望拥有一个线程池,这样您就可以控制同时执行多少线程/REST 调用。创建ThreadPoolExecutor(可以使用Executors.newFixedThreadPoolExecutors.newCachedThreadPool);创建一个Callable 任务来构造/处理每个 REST 调用,然后使用任务列表调用 ThreadPoolExecutor.invokeAll()。然后,遍历返回的列表并从中构造 SOAP 响应。
    3. 请参阅prior discussions,了解如何使用多线程 Apache HTTP 客户端。

    【讨论】:

      猜你喜欢
      • 2015-09-17
      • 1970-01-01
      • 2019-05-05
      • 1970-01-01
      • 1970-01-01
      • 2012-08-28
      • 2021-06-07
      • 1970-01-01
      • 2010-11-25
      相关资源
      最近更新 更多