ASP.NET-新しいアプリケーションに最適なキューシステム
-
11-07-2019 - |
質問
私の組織は、asp.netアプリケーションである新しいシステムを実装する準備を整えています。アプリケーションには、Webサイトによって開始されるオフライン作業の大きなキューがあります。このキューは、理想的にはXMLメッセージで、さまざまなタイプのアクティビティを保持します。メール通知、スケジュールされたタスクなどのことを考えてください。
過去には、組織はこのタスクを達成するためにMSMQを使用していました。しかし、彼らはMSMQを古い学校であると考えています(そして、私はそれらに部分的に同意します)。ソリューション。
私の考えでは、いくつかの潜在的な選択肢があります:
1. MSMQの最新バージョンでの新しい実装に固執します。理想的ではありませんが、既知の製品です。
2. Windows Workflow Foundationを使用します。これは、この種のことでこれを使用した他の開発者から聞いたことがあります。
3.カスタムデータベースソリューションを開発します。
明らかな解決策がありませんか?これはマイクロソフト製品であることが理想ですが、実際にはマイクロソフト中心のショップで作業する必要があります。
私は次のことを心配しています:
1.実装とメンテナンスの容易さ
2.しばらく続くソリューション
3.中規模のXMLデータを含む、大量の行を処理できる
4.迅速な更新を備えた、完全に信頼できるキューシステム(複数のユーティリティプロセスがキューからレコードを取得して処理する可能性が高い)。
解決
投稿を読むことは、MSMQが不適切だと思う唯一の理由のように思えます。誰かが「古い学校」だと思っているからです。あなたの会社はそれを経験しているように見えるので、それを使用しない十分な理由とは思わないでしょう。したがって、学習曲線はなく、それは簡単な実装とメンテナンスを意味します。
さらに、MSMQは、あなたが言及したすべての懸念に完全に対処します。したがって、別の「本物」がない限り、使用しない理由は、MSMQに固執すると思います。
他のヒント
WCFを検討することをお勧めします。永続的なキューメッセージングを指定するように構成し、内部でMSMQテクノロジを使用します。 WCFの抽象化/インターフェイスとテクノロジーは、長い間存在するはずです。
ムース・イン・ザ・ジャングルに同意します。MSMQはおそらくあなたが固執するべきものです。
私は、Udi Dahanの nServiceBus のように、MSMQを使用するいくつかの代替APIを調査する可能性があります。
ActiveMQ(上記)の代替として、オープンソースのRabbitMQがあります。彼らが言うことから、ASP.NETおよびWCFとうまく統合できます。
SQL ServerのService Brokerを調べましたか?データベースをバッキングストアとして使用するキューイングシステムです。
いくつかのオプションがあります:
-
Biztalk:企業レベルでのメッセージ配信とルーティングを保証するために構築されています。設定は難しく、高価で、学習曲線は急ですが、一度オンにすると安定します。
-
MSMQ:高速で、無料のように安価で、使いやすく、簡単に動作します。
-
SQLサービスブローカー。これはMSMQからのステップアップですが、Biztalkからの大きなステップダウンです。
主な問題は、本当に必要な機能セットに要約されます。 Biztalkは、ほぼ独自の開発環境です。一方、MSMQでは、周囲にすべてを構築する必要があります。
システム全体では、Windowsワークフローを使用してビジネスロジックを管理し、タスクリストのストレージとしてMSMQを使用することができます。ワークフローは、キューから次のメッセージを取得することから開始し、それをどうするかを決定します。
キューイングは、自分自身を台無しにしたくないものです。すでに動作し、すでに多くの人々によってテストされている既成のものに信頼を置きます。