MSMQ によって伝送されるメッセージに対して複数のリスナーを持つことは可能ですか?
WCF はサービスの観点からすべてを組み立てるように見え、通信をポイント ツー ポイントの事柄にします。メッセージ キューを使用して、ログをデータベースに記録する別のプロセスの受信トラフィックをバッファリングしたいと考えています。
着信トラフィックの監視に関心のある他のプロセスがいくつでも存在する可能性があり、これはオブザーバー パターンを積極的に要求しますが、少なくとも WCF 経由で MSMQ を使用しない限り、オブザーバー パターンを表現する方法がわかりません。
誰でもこれについて私にアドバイスできますか?
問題を説明するのにも役立つかもしれない理由についての背景: 私は、現場の小さなブラック ボックスからの接続要求を受け入れる Windows サービスを持っています。ソケットをセットアップし、ブラック ボックスは、時間と空間の GPS 位置で注釈が付けられたイベントを説明するメッセージを送信します。
ソケット ストリームからのメッセージ パケットを解析し、MSMQ を介して別のプロセスに送信します。別のプロセスは重複をフィルター処理し、パケットをデータベース テーブルに書き込みます。
着信トラフィックに応じてインクリメンタル計算を行うことでメリットが得られる後処理がいくらでもあり、ユーザー ツールは着信トラフィックにも応じてユーザー通知を実行します。
したがって、1 つのプロセスでメッセージを送信し、いくつかのプロセスでメッセージを受信したいと考えています。これらの受信者の 1 つは、パケットの内容を解析し、メッセージをデータベースに転記します。これは、キューからメッセージを最終的に削除する責任の明らかな候補ですが、これがメッセージを処理する最後のハンドラーであることを確認する方法の問題があります。