2016-10-03 10 views
-2

私はASP.NET MVCをC#で使用しています。私のプロジェクトで3つのサーバー間でデータを渡す必要があります。以下はasp.netで3つの異なるサーバー間でデータを渡す方法C#

は、シナリオの詳細な説明です:

1)のウェブサイトがIISによってホストされているサーバ1(Webサーバー)があります。

2)サーバ1は、サーバー2は、サーバ3に応答を送信するサーバ2

3)に要求を送信。 (Server2はserver1に直接応答を送信できません)

4)Server1はServer1に応答を返します。

server3とserver1の間に接続が切断された場合の対処方法server3からのserver1リダイレクトは、現在の状態を知るために必須です。

詳細: このプロジェクトはショッピングカートに関連しています。 Server1は、WebサイトがIIS上でホストされている場所で、顧客が選択した商品と支払い処理を開始します.Server2は支払いゲートウェイです(ただし、クライアント要件に応じて支払いゲートウェイはWebサイトすなわちserver1に応答を返しません。 .Server3は冗長サーバーであり、Webサーバーに接続されています。IIS上でホストされ、支払いゲートウェイからの応答を取得してWebサーバーに渡すために使用されます。したがって、Server3はサーバー1とサーバー2の間のインターフェースとして機能します。

最善の解決策を教えてください。

+0

これは、チェーン内のAPIリクエストを処理するためのものですか?あなたは実際のWebリクエストについて話していますか?あなたがサーバー間でリクエストを渡している状況にいたいとは思っていません。私はより良いアーキテクチャがあると思います - ロードバランサの背後にあるサービスでしょうか? – MichaelLake

+0

Server2/Server3でホストされているアプリのタイプを教えてください。 IISまたはWindowsサービスまたは他の? – RajN

+0

server1からの最初の要求では、要求のステータスを「保留中」とマークし、応答がserver3から来たら、ステータスを「完了」に更新できます。だからいずれにしても、接続が中断したり、エラーが発生したりすると、保留中のリクエストと完了したリクエストのレコードが得られます – Mehmood

答えて

0

疎結合のコミュニケーションスタイルで、非同期の場合は、キューに行き、パブリッシュ/サブスクライブパターンを使用します。

は、2つ目は、Server3ToServer1のメッセージをサブスクライブしますServer3ToServer1

サーバ1第1 Server2ToServer3 です

最初のものはServer1ToServer2 であるあなたがMessageingQueueという名前のキューを持っており、このキュー内の3つのトピック

があるとしましょう サーバー2はServer1ToServer2のメッセージを購読します サーバー3はServer2ToServer3のメッセージを購読します

サーバー1はSにメッセージを送信しますサーバ2はそれを受け取って、サーバ3によって選択されるServer2ToServer3トピックにメッセージを送信し、最後にサーバ3はServer3ToServer1へ最後の応答を送信する

関連する問題