2

非同期WCFエンドポイントの経験はありますか?

MSMQバインディングオプションを使用して、クライアントがメッセージをどのキューに配置する必要があるかを認識し、wcfサービス(最終的にIISでホストされる)がオフラインであるかどうかを透過的に機能するように設定できるかどうかを理解しようとしています。応答します。

このようにアプリサーバーがオンラインに戻ると(分散アプリケーション用にある多くのアプリケーションサーバーの1つ)、キュー内のすべての着信メッセージを処理して詳細に処理するため、この設定を取得したいと思います。

メッセージング管理(電子メールの送信)、ログサービス(データベースへのログエントリの書き込み、イベントログ、または電子メールによる送信)、および同様の種類のバックエンドプロセスなど、遅延が理にかなっている操作についてもっと考えています。

私の他のオプションは、TIBCOビジネスワークスとemsを使用することですが、何が優れているかを理解しようとし、単純なWCFが同期または非同期で機能する場合は、バインディングをたとえばnetTCPからMSMQに変更するだけです。

ありがとう!

4

2 に答える 2

4

非同期とキューを区別する必要があります。

たとえば、クライアントベースの非同期呼び出し、非同期サービスの実行、OneWayメッセージングとデュプレックス、または単にOneWayメッセージングを使用して、NetTcpBindingを使用して非同期メッセージングを実行できます。

ただし、おっしゃるように、キューには、復元力、負荷の平準化、およびMSMQのバージョンによってはスカラビリティという追加の利点があります。

キューを使用する際の主な2つの問題は次のとおりです。

  1. すべてのメッセージングは​​OneWayである必要があるため、クライアントが処理が成功したかどうかを知る方法が必要な場合は、それをソリューションに組み込む必要があります
  2. キュー障害のセマンティクスは、標準のサービス障害とは大きく異なります。デッドレターキューとポイズンメッセージキューは、未処理のメッセージがないかチェックする必要があります。これも、ソリューションに設計する必要があるものです。
于 2011-06-17T12:28:44.177 に答える
1

Tibco EMS と同等の機能が必要な場合、WCF ですぐにサポートされる類似の機能は MSMQ だけです。すでに Tibco EMS インフラストラクチャを持っていて、それでも WCF を使用したい場合は、Tibco が WCF 用の EMS バインディングを提供しているため、これら 2 つを組み合わせることができます (私はそれをテストしたことはありませんが、顧客のダウンロード ページで見ました)。

于 2011-06-17T12:34:26.790 に答える