2012-02-27 13 views
1

私は注文テーブルを含むデータベースを持っています。私はクライアントのAPIを作成してOrderテーブル内のデータを操作できるようにしようとしています。クライアントがURI経由でCRUD操作を実行できるように、私はWCFデータサービスのルートを選択しました。WCFデータサービスとMSMQ

しかし、私はこのWCFデータサービスがスケーラブルであり、複数のクライアントからの多数の要求(1000)を処理できることを保証する必要があります。私はWCFデータサービスとMSMQを使用して見てきましたが、これは不可能と思われる以下のリンクを見てください - Can we use msmq messaging with wcf data service

私の回避策は、クライアントがMSMQに要求を追加する変更をdbに保存するのを待つのではなく、データを操作する(選択しない)場合です。これは、ORM内のSaveChanges()メソッドをオーバーライドして変更を抽出し、MSMQにシリアル化してからクライアントに返します。別のスレッドがMSMQからオブジェクトを取得し、変更をdbに保存します。

これはすべてうまくいくようですが、クライアントにリクエストが処理またはエラーが発生したことを通知する方法を教えてください。何か案は?

答えて

0

通常は同期操作のオフライン処理でこの問題が発生します。

これは、読み取りと書き込み操作を切り離そうとするCQRSパターンを実装する際に直面する問題の1つです。これはという最終的な整合性と呼ばれています。

この問題に対処するためのさまざまな技術が実際にあります - これらのリンクを見てみましょう:

CQRS - Eventual Consistency

GUI recommandations for eventual consistency?

関連する問題