第12章. 軽量フレームワーク・マイクロサービス
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
ライトウェイトフレームワークは、ヘビーウェイトフレームワークと同様の機能を提供するが、イベントブローカーとコンテナマネジメントシステム(CMS)を大きく活用する方法で提供する。ヘビーウェイトフレームワークとは異なり、ライトウェイトフレームワークには、フレームワーク固有のリソースを管理するための追加の専用リソースクラスタはない。水平スケーリング、ステート・マネージメント、障害回復は、イベント・ブローカーとCMSによって提供される。アプリケーションは、BPCのマイクロサービスがデプロイされるのと同じように、個々のマイクロサービスとしてデプロイされる。並列性は、コンシューマグループのメンバーシップとパーティションの所有権によって制御される。新しいアプリケーション・インスタンスがコンシューマ・グループに参加したり離脱したりすると、パーティションは再分配される。
利点と限界
軽量フレームワークは、重量級フレームワークに匹敵するストリーム処理機能を提供する。ストリームをテーブルにマテリアライズする機能と、すぐに使えるシンプルな結合機能によって、ストリームと、必然的にその中に入ってしまうリレーショナル・データを簡単に扱うことができる。テーブルを実体化する機能は軽量フレームワーク独自のものではないが、この機能がすぐに使えて使いやすいことは、軽量フレームワークが複雑なステートフル関数に対応できることを示している。
軽量モデルは、内部イベントストリームの使用を通じて、データのローカリティとコパーティショニングのメカニズムを提供するイベントブローカーに依存している。イベントブローカーはまた、「変更ログイベントストリームへの状態の記録」で説明したように、変更ログを使用することで、マイクロサービスの内部状態を永続的に保存するメカニズムとしても機能する。CMSを活用することで、他のイベント駆動型アプリケーションのように軽量マイクロサービスをデプロイすることができる。インスタンスを追加したり削除したりするだけで、アプリケーションの並列性を扱うことができ、CMSを使ってスケーリングや障害管理のメカニズムを提供することができる。図12-1は、インスタンス間の通信に使用される内部イベントストリームを含む、基本的な軽量モデルを示している。
図12-1. データの再分割のための内部イベント・ストリームの使い方を示す軽量フレームワーク・モデル
軽量フレームワークの主な限界は、本章で後述する、現在利用可能なオプションに関するものである。
軽量加工
ライトウェイト・フレームワークは、ヘビーウェイト・フレームワークの処理手法を忠実に反映している。個々のインスタンスがトポロジーに従ってイベントを処理し、イベントブローカーが単一インスタンスを超えるスケーラビリティのためのインスタンス間通信レイヤーを提供する。
同じキーのデータは、join のようなキーベースの演算や、groupByKey 演算の後に続くreduce/aggregation.これらのシャッフルは、インスタンス間の直接通信を使用する代わりに、与えられたキーの各イベントが単一パーティションに書き込まれた内部イベントストリーム( ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access