ソリューションのアイデア
このアーティクルはソリューションのアイデアです。 このコンテンツにさらに多くの情報 (想定されるユース ケース、代替サービス、実装に関する考慮事項、価格ガイダンスなど) の掲載をご希望の方は、GitHub のフィードバックでお知らせください。
このソリューションでは、Azure Cache for Redis を使用して、発行とサブスクライブのシステムでリアルタイム メッセージをルーティングします。 また、Azure SignalR Service などの Web 通信フレームワークもスケールアップされます。
Architecture
このアーキテクチャの Visio ファイルをダウンロードします。
データフロー
- パブリッシャーによって Azure Cache for Redis にメッセージが送信されます
- Azure Cache for Redis により、これらのメッセージが格納され、サブスクライバーへの配信が管理されます。
- サブスクライバーによって、サブスクライブしたメッセージが Azure Cache for Redis からプルされます。
コンポーネント
- Azure Cache for Redis は、高パフォーマンスでスケーラブルなアーキテクチャを実現する、フルマネージド メモリ内キャッシュです。 これを使用すると、ミリ秒未満の待機時間で 1 秒間に数百万の要求を処理するクラウドまたはハイブリッドのデプロイが可能になり、これらの操作はすべてマネージド サービスの構成、セキュリティ、可用性を利用して行われます。 Azure Cache for Redis は、アプリケーションのパフォーマンスを向上させるためにデータ キャッシュとして使用されることが多いですが、メッセージ ブローカーとしても使用できます。
- Azure App Service は、Web アプリケーション、REST API、およびモバイル バックエンドをホストするための HTTP ベースのサービスです。 App Service を使用すると、.NET、Java、Ruby、Node.js、PHP、Python のうち、お気に入りの言語を利用して開発することができます。 アプリケーションの実行とスケーリングは、Windows および Linux ベースの環境の両方で容易に行うことができます。
- Azure SignalR Service は、Web アプリにリアルタイムで通知を送信する方法を提供するオープンソースのソフトウェア ライブラリです。
シナリオの詳細
このシナリオでは、Azure Cache for Redis をメッセージ ブローカーとして使用して、パブリッシュまたはサブスクライブの非同期メッセージング機能を実装する方法を示します。 リアルタイム メッセージのルーティングに最適です。 このソリューションを使用して、Web 通信フレームワークをスケールアップすることもできます。 たとえば、これを使用して、別のインターネット インフォメーション サービス (IIS) インスタンスにデプロイされている SignalR アプリケーション全体にメッセージを配布できます。
考えられるユース ケース
このソリューションは、次のような発行およびサブスクライブ システムを使用するシナリオに適用されます。
- 企業内のビジネス機能のマイクロサービスを接続するミドルウェア。
- アプリケーション ログの収集および配布システム。
- 座席予約システム。
次のステップ
- Azure Cache for Redis について
- App Service の概要
- Azure SignalR サービスとは
- Azure Cache for Redis で Pub/Sub と Streams を実装する
- Redis を使用した SignalR のスケールアウト