1

私は5ノードのクラスタを持たを受けていない、各ノードはmicroserviceがありAzureのサービスバスからメッセージを受信して​​いるランニング、(これはステートレス信頼性の高いサービスです)。サービスバス複数のリスナーインスタンスがメッセージ

my_topic(トピック名)に対して1つのmy_Subscription(Subscription Name)を作成したので、マイクロサービスインスタンスはランダムにメッセージを受信して​​います。

私はすべてのインスタンスがサービスバストピックに登録されているので、ブロードキャストされることを期待していました。

この場合、インスタンスごとに1つの新しいサブスクリプションを作成する必要がある場合は、ARM templateを変更してサービスを拡大するたびに再デプロイする必要があります。

+0

すべてのマイクロサービスインスタンスが1つのサブスクリプションをポーリングしていることを考慮すると、この動作は期待されていませんか? –

+0

@GauravMantri今、この場合場合、私はインスタンスごとに1つの新しいサブスクリプションを作成する必要があります、私は私のサービスをスケールするたびたびにARMのテンプレートを変更し、再デプロイする必要がありますか? –

+0

すべてのインスタンスで同じメッセージを使用できます。正しい? https://docs.microsoft.com/en-us/azure/architecture/patterns/ - あなたはセットアップ競争消費者のパターンを使用するようにしているよう –

答えて

0

あなたは彼らが起動して、あなたのクラスタノードが(やるにはあまりにも難しいことではないはずである)、その場で自分のサブスクリプションを作成することができます。おそらく、サブスクリプション名にノードの一意のIDのようなものを使用しています。それから、各ノードは自分のメッセージのコピーを受信し、目標を達成します。しかし、あなたのノードがいつも動いていたら、失効したサブスクリプションがトピックのストレージを詰まらせないように、クリーンアップメカニズムを実装する必要があります。