2014-01-18 5 views
8

私はAzure Service Busを初めて使い、トピックを作成するための成功したpocsとメッセージを受け取るための別個のサブスクライバアプリケーションを作成しました。この記事に基づいてAzureサービスバス - サブスクライバはサブスクリプションを個別に購読して同じメッセージを共有できますか?

は、私が引用: 「のトピックは、トピックに送信されたすべてのメッセージの独立したコピーを取得し、それぞれがそれに関連付けられた最大2000個のサブスクリプションを持つことができる一つまたは複数の加入者が独立を購読することができます。サブスクリプションとはそれからのメッセージのためにを競争します。

http://convective.wordpress.com/2011/06/08/windows-azure-appfabric-service-bus-queues-and-topics/

私は何を興味は独立して同じトピックをサブスクライブするために、複数のアプリケーションのためにこれを拡張しますが、彼らのためにを競合しないことです。

現在のpocには、同じトピックとサブスクリプションを購読している1つの送信者と2つの別々のアプリケーションがあります。私が見ている動作は、送信者から1つのメッセージを投稿すると、実行中の2つのサブスクリプションアプリケーションのどちらかがそれを受信するということです。しかし、他のものではありません。

私の質問は、複数の独立したアプリケーションが同じトピックメッセージを受信できるかどうかです。どんなアドバイスも大歓迎です!

答えて

18

トピックのサブスクリプションを作成するときには、特定のサブスクリプション名が付けられます。その後、そのサブスクリプション名のメッセージを要求するコンシューマは、そのサブスクリプションのメッセージを競合します。独立したアプリケーションがトピックに送信されたメッセージのコピーをそれぞれ受け取るようにするには、トピックごとに独自のサブスクリプションを作成する必要があります。それぞれのサブスクリプションは、トピックによってフィードされているキューとしてほとんど見ることができます。

私が与える例は大学です。トピックは「新生児」であり、大学内の各部門は新しい学生のためのメッセージのコピーを受け取ることを望んでいます。したがって、各部門は独自のサブスクリプションを持つことになります。 「音楽」、「ビリングス」、「科学」、「数学」のサブスクリプションなどがあります。それらのそれぞれは、新入生トピックに加入しています。このようにして、各学科は新しい生徒メッセージのコピーを受け取り、必要に応じて気になるものをフィルタリングすることもできます。部門がこれらの処理を遅らせると、サブスクリプション名を使用してプロセッサーのインスタンスを増やすことができるため、理論的にスループットが向上します。

あなたの例では、各アプリケーションは独自のサブスクリプションを作成するか、ユニークなサブスクリプションを割り当てて起動時にプルすることが必要になります。アプリケーションの有効期間にサブスクリプションの有効期間を決定させる場合(つまり、アプリケーションの起動時にサブスクリプションを作成し、アプリケーションの終了時にサブスクリプションを破棄することを意味します)、アクティブなサブスクリプションがない場合は、単に失われます。ただし、他のサブスクリプションに配信されなかったメッセージのみを受信するすべてのサブスクリプションを作成することはできます。それは本当にあなたが達成しようとしているものに依存します。

+0

こんにちはマイクウォー、説明をありがとうございます。 – Heretix

+1

@mikewo、「アクティブな定期購読がない場合、トピックに送信されたメッセージは単に失われます」というメッセージは、メッセージの存続時間に依存しません。アクティブなサブスクリプションがなくてもメッセージがトピックに追加されても、メッセージが期限切れになる前に、アプリケーションがトピックにサブスクライブするとどうなりますか?それを受け取らないだろうか?投稿に感謝します。非常に役に立ちます。 –

+1

@NoelAbrahamsいいえ。サブスクリプションがなく、メッセージがトピックに送信された場合、システムは誰も気にせずメッセージを保持しないとみなします。メッセージの有効期限は、それが気になるキュー/サブスクリプションに配信されるときです。キューまたはトピックのメッセージの既定の時間はTimespan.MaxValueです。したがって、理論的には、それについて質問している方法であれば、誰かがそのメッセージを購読するまで、常に周りにいるでしょう。 – MikeWo

関連する問題