web-dev-qa-db-ja.com

.NETServiceバスキューとAzureキューサービスのどちらを選択するか

Azureアプリケーションに関する簡単な質問です。通信する必要のあるWebとワーカーの役割が多数ある場合、ドキュメントにはAzure QueueServiceを使用するように記載されています。

ただし、新しい.NET ServiceBusがキューも提供するようになったことを読みました。これらは、はるかに詳細なAPIを提供しているように見えるため、より強力に見えます。 .NSBはもっと面白そうに見えますが、分散アプリケーションでの使用を警戒するいくつかの問題があります。 (たとえば、キュ​​ーの有効期限...キューが時間どおりに更新されることを保証できない場合は、すべてを失う可能性があります!)。

誰かがこれらの2つのテクノロジーのいずれかを使用した経験があり、どちらを選択するかについてアドバイスを与えることができます。

私のユースケースは実際にはWeb/Workerの役割が相互に通信できるようにするだけなので、サービスバスはより強力に見えますが、Azure QueueServiceが私が求めているものだと思います。しかし、私は自分自身を隅に追いやる前に、それの確認を本当に探しています:-)

前もって感謝します。

更新

休憩中に2つのシステムについて読んだことがあります。 .NETサービスバスは、汎用の信頼性の高いメッセージングシステムを提供するのではなく、システムを統合するために特別に設計されているように見えます。 Azureキューは分散されており、信頼性と拡張性に優れているため、.NSBキューは、Azure自体でホストされているコードには適していません。

回答ありがとうございます。

29
ChrisV

Webロールとワーカーロールの間の通信には、Azureキューを使用することをお勧めします。キューを使用することは、Azureプロセス間で通信するための公式で認可された方法であり、私はあなたが自分自身を隅にプログラムすることを心から疑っています。 Service Bus(AppFabric)はオーバーヘッドが高く、外部アプリとの通信には非常に適していますが、Azureアプリ内の迅速で単純なメッセージには最適ではない場合があります。

10
Simon Munro

ユースケースは単純なRESTベースのGet/Put/Peekインターフェイスで基本的なままであるため、AzureQueuesの継ぎ目は一致します。

ドキュメントは最近更新され(2015年5月21日)、どちらか一方を使用する場合の詳細と、一般的な機能(トランザクションのサポート、キューとメッセージのサイズ、存続時間など):

https://Azure.Microsoft.com/en-us/documentation/articles/service-bus-Azure-and-service-bus-queues-compared-contrasted/

0

明確にするために、これは、さまざまな理由でさまざまな時点で作成された2つのAzureコンポーネント間の比較です。

ストレージキューとサービスバスキュー-比較対照

Azureは、ストレージキューとServiceBusキューの2種類のキューメカニズムをサポートしています。

Azureストレージインフラストラクチャの一部であるストレージキューは、シンプルなRESTベースのGET/PUT/PEEKインターフェイスを備えており、サービス内およびサービス間で信頼性の高い永続的なメッセージングを提供します。

Service Busキューは、キューイング、パブリッシュ/サブスクライブ、およびより高度な統合パターンをサポートする、より広範なAzureメッセージングインフラストラクチャの一部です。 Service Busのキュー/トピック/サブスクリプションの詳細については、ServiceBusの概要を参照してください。

両方のキューイングテクノロジーが同時に存在しますが、Azure Storageサービス上に構築された専用のキューストレージメカニズムとして、ストレージキューが最初に導入されました。 Service Busキューは、複数の通信プロトコル、データコントラクト、信頼ドメイン、ネットワーク環境にまたがる可能性のあるアプリケーションまたはアプリケーションコンポーネントを統合するように設計された、より広範なメッセージングインフラストラクチャ上に構築されます。

0
Jim Aho

私が理解しているように、Service Busは(以前のように)しばらくの間キューを持っていましたが、これらはメッセージを配信することが保証されていません-偶然です!

0
TobyEvans

開発者が学習するキュー関連のパターンは、両方に適用できます。どちらも、信頼性と実装の容易さの観点から使用できます。

ストレージキューのみが実行できること1)メッセージを処理しているワーカーがクラッシュします。後続のワーカーは、メッセージのステータスを読み取る前のワーカーが中断したところから続行したいと考えています。 2)キューに対して実行されたすべてのトランザクションのサーバー側ログが必要です。

しかし、比較は重要ではありません。 カスタムキュー開発が必要な場合は、常にストレージキューを使用します。これは、Microsoftによって開発された最初のものでした。 BizTalkをコピーするサービスバスが導入され、目的は統合(ハイブリッド)であるため、この行には、セッション、トランザクション、自動デッドレターなどの高度な機能があります。

このリンク は比較を提供し、 このリンク も同様です。すべてを分析してアジャイル開発を開始することは難しいため、上記のルールが適用されます。

0
Blue Clouds