はじめに
多くのアプリケーションは、いくつかの異なるコンピューターまたはデバイスで実行されるプログラムで構成されています。 このような分散アプリケーションでは、メッセージは、ネットワークを超えて遠距離のコンポーネント間で送信される必要があります。 同じサーバーやデータ センター上にあった場合でも、アーキテクチャの結合が弱い場合、コンポーネントの通信にはメカニズムが必要です。 信頼できるメッセージングは、しばしば重要な問題となります。
音楽を共有するアプリケーションを開発しているソフトウェア企業で働いてるとします。 ミュージシャンは、Web フロント エンドまたはモバイル アプリを使用して作成した音楽を、使用しているプラットフォームにアップロードできます。 また、他のメンバーの作品を聴いたり、それにコメントすることができます。 このアプリケーションは、ISP で実行されている Web サイト、モバイル デバイスで実行されているモバイル アプリ、Azure で実行されている Web API、データ ストレージの Azure SQL Database で構成されています。
需要が高いときに、一部の音楽ファイルが正常にアップロードされていないことや、一部のコメントが投稿されていないことが確認されました。 テストで、フロントエンドのコンポーネントと Web API の間でメッセージが削除されることによってこれらの問題が発生していることがわかりました。 これらの問題を解決するために、Azure Storage キュー、Azure Event Hubs、Azure Event Grid、Azure Service Bus の 1 つまたは複数のテクノロジを使用する予定です。
ここでは、分散アプリケーションでのそれぞれの通信タスクで、Azure の正しいメッセージング技術を選択する方法を学習します。
学習の目的
このモジュールでは、次のことを行います。
- イベントとメッセージを説明し、分散アプリケーションで解決するための課題について説明します。
- アプリケーションのメッセージング テクノロジとして、Storage キューが最適なシナリオを特定する。
- アプリケーションのメッセージング テクノロジとして、Event Grid が最適なシナリオを特定する。
- アプリケーションのメッセージング テクノロジとして、Event Hubs が最適なシナリオを特定する。
- アプリケーションのメッセージング テクノロジとして、Service Bus が最適なシナリオを特定する。