Azure Event Hubs メッセージング ソリューションを設計する

完了

ほぼ同数のソースから膨大な数のイベントを生成する特定のアプリケーションがあります。 これらのアプリケーション シナリオは、多くの場合、 ビッグ データと呼ばれます。 ビッグ データは、広範なインフラストラクチャを必要とする場合があります。

あなたは Tailwind Traders のホーム セキュリティ監視アプリケーションのアーキテクチャを設計しているとします。 各セキュリティ システムは、12 個以上のカメラ センサーを備えています。 家が安全であると判断するには、事前にセンサーとカメラをテスト ハーネスに接続し、その性能を試します。 さらに、セキュリティ システムがデータセンター監視本部に接続されると、キャッシュされたビデオ カメラの映像データがストリーミングされます。

このアーキテクチャでは、 イベント ハブを使用するメッセージング ソリューションを選択できます。 イベント ハブでは、1 秒あたり数百万のイベントを受信して処理できます。 イベント ハブに送信されたデータをリアルタイムに変換し、後の分析のために格納することができます。 開発者コースのこのオンデマンド ビデオでは、Event Hubs の概要について説明します。

Azure Event Hubs について知っておくべきこと

Azure Event Hubs は、フル マネージドのビッグ データ ストリーミング プラットフォームおよびイベント インジェスト サービスです。 サービスの特性を確認しましょう。

  • Azure Event Hubs では、リアルタイムのデータ インジェストとマイクロサービスのバッチ処理が、同じストリームでサポートされます。

  • イベントは、さまざまな言語で送受信できます。 Apache Storm を使用してメッセージを Azure Event Hubs から受信することもできます。

  • Azure Event Hubs が受信したイベントは、そのデータ ストリームの末尾に追加されます。

    • データ ストリームは、イベントが受信された時刻に従ってイベントを並べ替える。
    • コンシューマーは、時間オフセットを使用することで、データ ストリームに沿って検索できます。
  • Event Hubs では、Azure Service Bus キューなどの他のメッセージング サービスと区別する "プル" モデルを実装します。

    • Event Hubs では各メッセージをキャッシュに保持して、それを読み取れるようにします。
    • メッセージは他のコンシューマーのために残ります。
  • Event Hubs には、想定どおりに処理されないメッセージを処理するための組み込みメカニズムがありません。

  • Azure Event Hubs は、 購入したスループット (処理) ユニットの数に応じてスケーリングされます。 パフォーマンス機能は、Basic、Standard、Premium など、価格レベルごとに異なります。

ビジネス シナリオ

Azure Event Hubs やその他の Azure サービスがホーム セキュリティ監視アプリケーションのアーキテクチャにどのように貢献できるかを調べてみましょう。

Azure Event Hubs やその他の Azure サービスがデータ ストリーミング アプリケーションのアーキテクチャにどのように貢献するかを示す図。

  • Azure Event Hubs では、カメラとセンサーのテスト機器からストリーミング ビデオ カメラの映像データをキャプチャします。

  • ビデオとセンサーのテスト データは、Azure Blob Storage によって格納されます。

  • Azure Stream Analytics では、ビデオとセンサーのテスト データのパターンを識別します。

  • Power BI では、テスト データ パターンに基づいてアラートを監視し、セキュリティを向上させる決定を行うことができます。

Azure Event Hubs を使用する際の考慮事項

Azure Event Hubs をメッセージング ソリューションに含める方法を計画する際は、次の点を考慮してください。

  • 一般的な実装を検討してください。 アプリケーション シナリオがイベント ハブ メッセージングに適しているかどうかを特定します。 Azure Event Hubs が優れたメッセージング ソリューションである一般的なシナリオがいくつかあります。 Event Hubs は、ライブ ダッシュボード、クリックストリームなどの分析パイプラインのサポート、不正行為や外れ値アクションなどの異常の検出に最適です。 イベント ハブは、リアルタイムの分析とアーカイブ データを使用してトランザクションを処理するための優れたソリューションでもあります。

  • 言語とフレームワークの統合を検討してください。 Azure Event Hubs では、さまざまな言語でのイベントの送受信がサポートされています。 堅牢な言語とフレームワークのサポートにより、Event Hubs を他の Azure および Azure 以外のサービスと簡単に統合できます。

  • 価格レベルとスループット ユニットを検討してください。 アプリケーションに必要な機能と機能を提供する価格レベルを選択します。 必要なスループットまたは処理ユニットを購入して、Azure Event Hubs の実装がどのようにスケーリングされるかを制御します。 単一のスループット ユニットは、以下と同等です。

    • イングレス: 1 秒あたり最大 1 MB または 1,000 イベント/秒 (いずれか早い方)
    • エグレス: 1 秒あたり最大 2 MB または 4,096 イベント/秒
  • プル モデルの利点を検討してください。 Event Hubs によって実装されたプル モデルがアプリケーション通信にどのように役立つかを調査します。 Event Hubs ではメッセージをキャッシュに保持して、それを読み取れるようにします。 メッセージの読み取り時、メッセージは削除されません。 メッセージは他のコンシューマーのために残されます。

  • メッセージエラーを考慮してください。 Azure Event Hubs では、想定どおりに処理されないメッセージは処理されないことに注意してください。 データ形式が原因でメッセージ コンシューマーが誤動作したとします。 Event Hubs ではこの問題は検出されません。 メッセージは、time-to-live 設定の有効期限が切れるまで残ります。

  • データ ストリームへのアクセスを検討してください。 Event Hubs では、受信したイベントをデータ ストリームの末尾に追加し、受信した時刻に応じてイベントが順序付けられます。 イベント コンシューマーは、時間オフセットを使用してデータ ストリームに沿って検索することができます。

ヒント

詳細については、 Azure Event Hubs の探索モジュールを 参照してください。