Service Fabric Processor のパブリック プレビュー提供開始


執筆者: James Birdsall (Software Engineer II, Microsoft Azure)

このポストは、2019 3 4 日に投稿された Service Fabric Processor in public preview の翻訳です。

 

マイクロソフトの Azure Event Hubs クライアントは、 2 つのレベルで抽象化されていました。1 つは低レベルのクライアントで、イベント送信クラスとイベント受信クラスがあります。これらはアプリケーション側で自由に制御できますが、Event Hubs の設定をアプリケーション側で理解し、常にそれぞれのパーティションに接続している必要があります。この上位のクライアントが高レベルのライブラリ、Event Processor Host です。このライブラリでは、受信側には詳細情報を渡しません。Event Processor Host は複数のホスト インスタンス間で自動的に Event Hubs パーティションの所有権を分配し、指定の処理にイベントを送信します。

Service Fabric は、マイクロソフト提供のもう1 つのライブラリです。アプリケーションを断片的に分割し、複数のノード間で分散させる、汎用のフレームワークです。多くのお客様がアプリケーションに Service Fabric を使っていますが、その中には Event Hubs からイベントを受信するものがあります。Service Fabric のアプリケーション内で Event Processor Host を使うこともできますが、エレガントとはいえず、冗長になります。この組み合わせは、ノード間での負荷分散が 2 つの階層で別々に実行され、お互いに認識されません。また、Event Processor Host のインスタンスのパーティションの所有権を Azure Storage によって調整するためAzure Storage に負荷がかかります。

Service Fabric Processor は、Service Fabricと統合された新しいイベント処理ライブラリです。パーティション管理や信頼性の高いストレージ、より高度な負荷分散処理を Service Fabric の機能で行います。また、Event Processor Host でおなじみのシンプルなインターフェイスでプラグラミングできます。Service Fabric Processor の唯一の要件として、 Service Fabric アプリケーションが使う Event Hubs と同数のパーティションが必要です。これによって Event Hubs のパーティションからアプリケーションのパーティションに 1 on 1 でマッピングし、Service Fabric を効率的にロードすることができます。

Service Fabric Processor は現在プレビュー段階で、NuGet Microsoft.Azure.EventHubs.ServiceFabricProcessor (英語) ページで公開されています。ソース コードは GitHub .NET Event Hubs クライアント リポジトリ (英語) で公開されています。また、サンプル アプリケーション (英語) GitHub でご覧いただけます。

デベロッパーにとって、Service Fabric Processor でのアプリケーション作成には主に二段階の手順があります。まず、IEventProcessor インターフェイスを実装するクラスを作ります。パーティションの処理開始時に呼び出すメソッド (OpenAsync)、処理終了時に呼び出すメソッド (CloseAsync)、エラー発生時の通知処理メソッド (ProcessErrorAsync)、受信したイベントを処理するメソッド (ProcessEventsAsync) を指定します。最後のメソッドが、ほとんどのアプリケーションの中核、ビジネス ロジック実行部分です。

次に、アプリケーションの機能を実行する RunAsync メソッドにコードを追加して、Service Fabric と統合します。基本的な手順は、次のとおりです。

  • EventProcessorOptions のインスタンスを作成し、必要なオプションを設定する。
  • IEventProcessor を実装するインスタンスを作成する。このインスタンスは、このパーティションのイベント処理に使われる。
  • ServiceFabricProcessor のインスタンスを作成し、オプションとプロセッサ オブジェクトをコンストラクターに渡す。
  • ServiceFabricProcessor インスタンスで RunAsync を呼び出し、イベントの処理を開始する。

次のステップ

詳細については、GitHub で公開しているプログラミング ガイド (英語) をご覧ください。この記事の内容はいかがでしたか? ご意見やフィードバックがありましたら、お気軽に(元の記事の)コメント欄までお寄せください。Event Hubs の詳細については、Event Hubs 製品ページをご覧ください。

 

Skip to main content