2017-12-18 9 views
0

これは一般的な質問Microsoft.Azure.ServiceBusです。 Azureでは、アプリケーションが拡張されると、そのサブスクライバが複数回スケールアップされている場合、Azureはサブスクライバへのディスパッチメッセージをどのように処理しますか。 図1は、典型的な状況を示し、図2は私が話していたシナリオを示しています。デフォルトではAzureサービスバストピックスと複数インスタンスサブスクライバ

enter image description here

、Azureがすべてのインスタンスに同じメッセージを送信しますか?または、Azureはインスタンス間のメッセージの負荷分散に十分なほどスマートですか?そうでない場合、人々はこの状況をどのようにして正常に処理しますか?私は、スケーリングされた場合にこのメッセージを受け取るインスタンスを1つだけ必要とします。

答えて

0

Azure Service Busは、公開されたメッセージのコピーをサブスクライバすべてに送信しようとしています。

同じサブスクリプションエンティティを使用してサブスクライバをスケールアウトした場合、サブスクリプションに到着するメッセージは単一のサブスクライバインスタンスによって処理されるコンシューマsceanrioを取得しています。つまり、と仮定すると、処理が失敗せず、メッセージが完成します。それ以外の場合、メッセージは別のインスタンスによって再度処理されます。

最初のシナリオは、サブスクライバの各インスタンスが異なる物理サブスクリプションをリッスンしているときに機能します。

+0

ありがとうございました。 'EventHub'は私のためのより良い選択肢でしょうか?彼らは私が必要としていることを達成するようなリースの仕組みを持っており、それははるかに明確です。 – Andy

関連する問題