私は、Azureサービスバスのトピックとサブスクリプションのシナリオを持っています。このWebサイトはトピックの購読を作成します。ウェブサイトの別のインスタンスが作成されているとき、同じトピックに対する一意の名前で新しいサブスクリプションを作成したいと考えています。何が最善の方法だろう。ウェブサイトは青空のWebアプリケーションとしてホストされています。Azureサービスバス一意のサブスクリプション名(スケーリング時)
答えて
Azureサービスバスはブローカーであり、アプリケーションは競合するコンシューマ(つまり、同じWebアプリケーションのインスタンスと同じキューの複数インスタンスフィード)にする必要があります。そうだとしたら、コールバックのようなメカニズムを実装する必要があります。コールバックのようなメカニズムを実装する必要がある場合があります。そのためには、インスタンスごとではなく、Webアプリケーションごとにサブスクリプションを作成するのではなく、ユニークなサブスクリプションIDとしてWEBSITE_INSTANCE_IDを使用して行うことができます。 Johnのコメントと同様、インスタンスごとのサブスクリプションの問題は、スケールインすると、プロビジョニング解除されたWebアプリケーションインスタンスのサブスクリプションに関連付けられたメッセージは、処理されていないブローカに残ります。言うまでもなく、一定のスケールアウト/インは、孤立してクリーンアップされないサブスクリプションを生成します。
ウェブアプリケーションごとにサブスクリプションを作成し、その目的のために特別に設計されたSignalR with a backplaneのようなものを使用して、特定のインスタンスにイベントを配信することもできます。 SignalRにはいくつかのバックプレーン実装(Redis、Azure ServiceBus、SQL Server)があります。
Sean FeldmanとJTaubありがとうございます。シナリオは、メッセージがトピックに公開されたときに、Webアプリケーションがサブスクリプションからメッセージを読み取り、signalRを使用してクライアントにプッシュします。これは、インスタンスごとにサブスクリプションを作成すると考えた理由です。インスタンスごとに独自のクライアントセットがあるためです。しかし、Seanが提案していることから、このトピックへのサブスクリプションは1つだけで、スケールアウトのシナリオを処理するためにSignalRバックプレーンを使用できます。 – Suhumar
私がこのルートをたどると、メッセージは購読から何度も読めるようにする必要があります。したがって、複数のインスタンスはメッセージを読み取り、それをクライアントに送信できます。だから私はそれのためのカウントを設定し、いつメッセージを完了マークするのですか? – Suhumar
メッセージを一度だけ読み取って、バックプレーンを使用してsignalRでブロードキャストします。成功した場合は、完了したASBメッセージをマークします。 –
- 1. 異なるazureサービスバスの名前空間で複数のサブスクリプションを聞く
- 2. Azureのサブスクリプション名に
- 3. Azureサービスバスのデッドレターキュー
- 4. Azureサービスバスのコンシューマーメッセージングパターン
- 5. サービスバスAzure App Services
- 6. Azureサービスバス3.2.2 BeginReceive()
- 7. AzureサービスバスC#アーキテクチャ
- 8. Azureサービスバスのトピックで、生成された名前の排他的な自動登録サブスクリプションがある
- 9. Azureサービスバス - TTL with ScheduledEnqueueTimeUtc
- 10. SignalR Azureクラウドサービスとサービスバス
- 11. サービスバスがサブスクリプションから読まない
- 12. Azureサービスバスのキューメッセージの処理
- 13. phpアップロード時の一意のファイル名
- 14. Azure WebJobs Azureサービスバスからのマルチインスタンス
- 15. Azure BlobストレージからAzureサービスバスへのメッセージ
- 16. Azureサービスバスのシリアル化タイプ
- 17. Azureサービスバス経由のSignalR
- 18. Azureサービスバスのトピック分割
- 19. AzureサービスバスとJavascriptの実装
- 20. Azureサービスバス中継のパフォーマンス
- 21. Azureサブスクリプションのアップグレード
- 22. Azureサービスバスのホスト名の競合の解決
- 23. 単一のTCPチャネルは、Azureのサービスバスで、Redisのキャッシュ、キューなど
- 24. パワーBIのAzure/Azure-ADサブスクリプション
- 25. Azureサービスバス連続WebJobポーズ
- 26. Azure NodeJS関数とサービスバス、デッドレターメッセージ
- 27. azureサービスバスとダイナミクスcrm統合
- 28. AzureサービスバスMessageReceiver Receive()Webソケットエラー
- 29. AzureサービスバスAddMessageが返す401
- 30. PythonでAzureサービスバスに接続
ユースケースとは何ですか?私はあなたがウェブサイトのインスタンスが死ぬにつれてきれいにされる必要があるサブスクリプションを持っているので、それをすることをお勧めしません。 – JTaub
Sean FeldmanとJTaubありがとうございます。シナリオは、メッセージがトピックに公開されているときに、Webアプリケーションがサブスクリプションからメッセージを読み取り、signalRを使用してクライアントにプッシュします。これは、インスタンスごとにサブスクリプションを作成すると考えた理由です。インスタンスごとに独自のクライアントセットがあるためです。 – Suhumar