私はこのシナリオを持っています、みんな-
次のビジネス トランザクションが表示される典型的な大規模 CMS アプリケーション:
- ユーザーはすぐにコンテンツを公開します。
- ユーザーはコンテンツの公開をスケジュールします。
- 自動プロセスは、たとえば 10 分間隔で実行され、スケジュールされた準備完了(単に BO のステータス) のコンテンツを収集し、公開に送信します。
これは、実際のシステムの単純化された説明です。パブリッシュとは、呼び出し引数の構築、別の Web アプリ (asp.net) の実行による html コンテンツの生成、トランザクション パーティのコミット、およびパブリッシュ結果に関するユーザーへの通知という4 つの主要なサブシステムで構成される複雑なプロセスを意味します。したがって、システムはプロセス全体を単一のメガトランザクションで実行する能力を失います。つまり、可能ですが、スケーラビリティ/パフォーマンスの観点からは実用的ではありません。
サブシステムが相互に通信するためのオプションがいくつかあります。たとえば、MSMQ、SQL Service Broker、NServiceBus、プレーンな WCF の一方向呼び出しのチェーン (現在実装されています) を利用するなどです。ユーザー数の増加に伴い、システムがより忙しくなり、より多くのコンテンツが生成されるように見えるため、この処理のためのより信頼性が高くスケーラブルなソリューションを探しています。特に、クライアントからモバイル版のサポートが要求されたことがあります。
私の考慮事項の 1 つは、専用の WCF サービスがコンテンツ生成モジュール (Web アプリ) の隣にディスパッチする MSMQ を使用して、すべてのユーザーの即時要求をキューに入れることです。Windowsのスケジュールされたタスクも同様です。これらのメッセージング プラットフォームがどのように役立つかはわかりませんが、html 生成の前にそれらが存在するわけではありません。これは本当に私を混乱させます。
どのテクノロジーがこれに最適かを自分で判断することはできません.どんな助け、考慮事項、あなたの経験を共有することも私を助けます.