【问题标题】:Calling a web-service from within a web-service and not waiting for the response从 Web 服务中调用 Web 服务而不等待响应
【发布时间】:2013-03-27 13:16:11
【问题描述】:

作为网络服务的一部分,比如 A,我需要调用另一个网络服务,比如 B。

考虑到 B 可能需要一些时间,给 A 的调用者的响应不应依赖于 B,即它应该将响应返回给调用者,而不管 B 的结果如何。

调用 A 和 B 的系统是不同的。我如何做到这一点?

注意:使用 RESTful 网络服务/Java

【问题讨论】:

标签: java web-services spring rest


【解决方案1】:

客户端应该异步调用Web Service A操作。

Web Service A 也应该异步调用 Web Service B 操作。

这样,无论Web Service B 的结果如何,客户端都将始终收到响应。

大多数 REST 框架已经支持异步调用:

【讨论】:

    【解决方案2】:
    【解决方案3】:

    根据给定的要求,

    在您的情况下,从客户端到服务 A 的调用可以是同步的 Restful 调用。 从服务 A 到服务 B 的调用是异步的。

    所以像往常一样使用客户端到服务 A 之间的宁静连接。

    在调用服务 A -> 服务 B 的情况下,您需要使用 JMS 概念,例如请求和响应队列。请参考http://docs.oracle.com/cd/E14571_01/web.1111/e15184/asynch.htm 这些通常实现为 2 个单向请求。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多