7

私はこの質問が少し前に尋ねられたことを知っています。しかし、周りを見回すと、どのルートを下るべきかまだ決まっていません。これが私のシナリオです、うまくいけばあなたは助けることができます:

数百のモバイルアプリケーションが定期的にアクセスする一連のWebサービスを提供します。これらのサービスは、デバイスに送信される新しい情報とデバイスから返される新しい情報の両方を使用して、デバイス上のデータを取得します。デバイスから返されるデータは、複数のデスクトップアプリケーションとWebサイトにもフィードする単一の中央SQLサーバーデータベースを更新する必要があります。

これらのサービスの要求/応答にかかる時間を短縮するために、デバイスから入ってくるデータを事後にMSMQインスタンスに貼り付けるか、シリアル化されたオブジェクトを一時データストアに保存して処理することにしました。 Windowsサービスは後でそれらを処理します。

だから私の選択はありますが、これとは別に、皆さんが私にアドバイスするのに役立つかもしれないいくつかのことがあります:

  • デバイスから返されるデータは、サーバー側で注文する必要のある小さなメッセージパケットでは返されません。
  • 私はMSMQについて何も知りませんが、以前にWindowsサービスを作成しました。必要に応じてMSMQを取得することに問題はありませんが。
  • データが原因で何らかの理由で処理が失敗した場合に備えて、デバイスからの応答を保持したいと思います。このようにして、データに問い合わせて、問題があるかどうかを確認できます。つまり、デバイスでは、ユーザーがサーバー側データベースの関連フィールドの長さを拡張するコメントを追加できます。

この情報を使用して、MSMQの学習を検討する価値があると思いますか、それともより単純なソリューションに固執する必要がありますか?

クリス。

4

1 に答える 1

9

MSMQ は悪い選択ではなく、学ぶのも難しくありませんが、知っておくべきいくつかの制約があることに注意してください。

短所:

  • 各キューは 2GB までです。
  • 各メッセージは 4MB (ただし、4MB の制限は WCF で MSMQ を使用することで修正できます)。
  • Windows 専用であるため、COM 対応環境の .NET、C/C++、または COM ライブラリでの使用に限定されます。

長所:

  • Windows ネットワーク ロード バランサーをサポートします。
  • Microsoft クラスター サービスをサポートします。
  • Active Directory と統合されています。
  • Windows に同梱されています。
  • トランザクションをサポートします。
  • MSMQ メッセージは、Windows イベント ログの監査メッセージによって追跡できます。
  • メッセージは、送信時に自動的に認証 (署名) または暗号化され、受信時に検証および復号化されます。

検討すべきもう 1 つの方法は、データをステージング テーブルに書き込むことです。メッセージ バック ログが必要なので、これは良い考えかもしれません。

システムのアーキテクチャの残りの部分を知らない場合、アドバイスを与えることは困難ですが、この回答が少し役立つことを願っています。

便利なリンク

.NET での MSMQ のプログラミング - パート 1
WCF での MSMQ の使用

于 2009-01-27T15:17:53.857 に答える