0

Web サービス A の一部として、別の Web サービス B を呼び出す必要があります。

A の呼び出し元に与えられる応答は、B に依存するべきではありません。つまり、B の結果に関係なく、呼び出し元に応答を返す必要があります。B には時間がかかる可能性があることを考慮してください。

A と B を呼び出すシステムはどちらも異なります。どうすればこれを達成できますか?

注: RESTful Web サービス/Java の使用

4

3 に答える 3

3

クライアントはWeb サービス A操作を非同期的に呼び出す必要があります。

Web サービス Aは、 Web サービス B操作も非同期で呼び出す必要があります。

これにより、 Web サービス Bの結果に関係なく、クライアントは常に応答を受け取ります。

ほとんどの REST フレームワークには、既に非同期呼び出しがサポートされています。

于 2013-03-27T14:58:10.913 に答える
0

サードパーティのライブラリを気にしない場合は、jetty-client を使用してください: http://www.supermind.org/blog/1023/non-blocking-nio-http-requests-in-java-with-jettys-httpclient

Maven パッケージの説明は次のとおりです: http://mvnrepository.com/artifact/org.eclipse.jetty/jetty-client

于 2013-03-27T13:22:23.397 に答える
0

与えられた要件に従って、

クライアントからサービス A への呼び出しは、あなたのケースでは同期的な Restful 呼び出しにすることができます。サービス A からサービス B への呼び出しは非同期です。

そのため、通常どおり、クライアントとサービス A の間の安らかな接続を使用します。

Call Service A -> Service B の場合、使用する必要がある JMS の概念、たとえば要求キューと応答キュー。 これらは通常、2 つの一方向リクエストとして実装されます

于 2013-04-25T12:02:00.770 に答える