第6章. ストリーム処理のパターン
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
ストリーム処理パターン イベント駆動型アーキテクチャパターンから発展したものである。イベント駆動型アーキテクチャパターンは、イベント配信とオーケストレーションが中心であるのに対し、ストリーム処理パターンは、そのようなイベントをどのようにオンザフライで処理して意味のある情報を抽出し、リアルタイムでアクションを起こすことができるかに焦点を当てている。イベント駆動型アーキテクチャ・パターンがなければ、クラウド・ネイティブ・システムにストリーム処理パターンを実装することはできない。
ストリームとは何か?
ストリームは、時間順に並んだイベントの連続シーケンスとして定義できる。ストリームは、StockStream 1.0のように、それを一意に識別する名前とバージョンから構成される。ストリーム内のすべてのイベントは、共通のメッセージ形式と構造を持つ。例えば、StockStreamはJSON形式を持ち、その構造にはシンボル、価格、出来高が含まれる。一貫した形式と構造を持つことで、ストリーム内のイベントは、ストリーム処理システムを使用して自動化された方法で処理することができる。ストリーム・バージョンは、構造を安全に変更する方法を提供し、時間とともにストリームを進化させる。
ストリーム処理とは何か?
ストリーム処理とは、動いているイベントに対して演算子を実行することである。ステートレス・サービスがイベントを消費し、そのイベント形式を変換するような単純なものから、ステートフルなデータを低遅延と信頼性でメモリにストアし処理するような複雑なものまである。
単純なイベント処理とは対照的に、ストリーム処理は、イベントが発生した順番に処理する必要があるユースケースをサポートする。ストリーム処理のパターンは、判断を下す際に以前のイベントを記憶して利用することもできる。例えば、株価が過去5分間に連続して上昇しているかどうかを検出するには、以前のイベントを記憶し、それらを順番に処理する必要がある。
注
ストリーム処理の文脈におけるリアルタイムという用語は、常にほぼリアルタイムのことを指す。システムは、最善の努力でミリ秒から数秒以内に結果を提供し、常に低遅延を達成しようとする。
ストリーム処理アプリケーションを構築する場合、アプリケーションのステートレス性とステートフル性は設計に大きく影響する。そのため、アプリケーションの状態を保持するために、異なるパターンセットを使用する必要がある。この章では、まずストリーミングデータ処理パターンを使って、意味のある出力を得るためにストリーミングデータがどのように処理されるかを学び、次にステートレス、ステートフル両方のストリーム処理アプリケーションについて、スケーリング、パフォーマンス向上、信頼性達成のためのパターンを見ていく。次に、ストリーム処理テクノロジーと、クラウドにおけるストリーム処理アプリケーションのテスト、セキュリティ、モニタリング、可観測、継続的デプロイ方法について説明する。
ストリーミング・データ処理パターン
ストリーミング・データ処理パターンは、変換、フィルタリング、集約、意味のあるシーケンス検出を通じてリアルタイム・イベントを処理することで、いかに有用な出力を生成できるかに焦点を当てている。これらの機能により、クラウド・ネイティブ・アプリケーションは低遅延でイベントをオンザフライで処理することができる。 ...
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