イベントドリブンとは何か、リアルタイムの速度はどのくらいですか?

完了

考えると、多くのイベントドリブン シナリオを特定できます。 それらの多くは、リアルタイムで反応を必要とします。

リアルタイムとはどういう意味ですか?

リアルタイムの反応は即時の答えと見なすことができます。 コーヒー ショップで、何を飲みたいかを尋ねるレジ係の例を見てみましょう。

レジ担当者は、即時の回答、または少なくともすぐに与えられる回答を期待します。 そうしないと、レジ担当者が質問を言い換えたり、失礼であると疑ったりする可能性があります。 迅速な回答が要求され、また適切です。 回答する時間は若干異なる場合がありますが、"リアルタイム" と見なされます。そのため、あいさつを返すのはすぐに行われるはずですが、レジ担当者の質問に答える順序について簡単に考えておけば問題ありません。

そのシナリオをソフトウェア システムに変換する場合は、応答時間、完了時間、アクセス時間、起動時間などのタイミングが気になります。 ユーザーまたはアクセスするアプリケーションは、これらのタイミングを定義します。

システム タスクは、リアルタイムで、所定の期限内に機能を実行します。

システムで何が起こっているかを常に認識する必要があります。 明白なこと、つまりタイミングのログ記録、監視、測定を忘れないようにしてください。

重要

事前に期限とタイミングを指定し、チェック用の非ブロッキング監視ソリューションを設定してください。

要約すると、リアルタイムは一瞬で超高速を意味することに同意します。 特定のシナリオで正確に指定される速度。

イベント ドリブン アプリケーション

クリックイベントについて考えると、他のことについても考えることになります。 イベント ドリブン アプリケーションでは、 ファイア アンド フォーゲット の原則が使用されます。 イベントは、別のサービス、イベント ハブ、ストリーム、Kafka などのメッセージ ブローカーなど、次のシステムに対して送信または 発生 します。 システム内の次の応答が返されるのを待つ必要はありません。 疎結合 は、最終的な整合性を他のレベルで管理する必要があるという代償と引き換えに達成されます。

イベントドリブン アプリケーションの性質を特定するために、Alex という名前の顧客の例を使用して、コーヒーとカプチーノを購入することで、主要なアーキテクチャ パターンを見てみましょう。

イベント通知

イベント通知は、特定の発生またはイベントの通知です。 各イベントは個別に表示されます。 Alex という名前の顧客がコーヒーとカプチーノを購入する例は、次のようになります。

1. イベント: Alex はコーヒーを購入します。

2. イベント: Alex はカプチーノを購入します。

1人のバリスタは、Alexの全注文を得るために、すべてのイベントを注意深く聞く必要があります。 しかし、2人のバリスタは、独立して飲み物を準備して提供することもできます。

イベント格納状態転送

イベント実行状態転送では、必要なすべての情報が 1 つのイベントに格納されます。 これは、イベントが失われたり、サービスがすべてのイベントを監視していない場合に便利です。 この例では、イベントは次のようになります。

1. イベント: Alex はコーヒーを購入します。

2. イベント: Alex はコーヒーに加えて、カプチーノを購入します。

1 人のバリスタの場合、2 番目のイベントのみをリッスンすれば十分である可能性があります。 2人のバリスタがいる場合、2番目のバリスタは最初のバリスタを見なければなりません。 注文は一緒に処理できますが、プロセスが完全に切り離された場合よりも時間がかかる場合があります。

イベント ソーシング

イベント ソーシングでは、イベント ストレージに重点が置かれています。 ご覧のように、イベントは最初の例と同じです。 しかし、バリスタがイベントを受け取り、それに関連するすべてのイベントを考えて、Alexによるすべての注文の現在の状態を把握する瞬間、この概念においてバリスタは重要です。

2番目の注文では、バリスタは最初の注文を思い出してAlexの注文がコーヒーと、その後に注文されたカプチーノで構成されていることを認識しています。 2番目のバリスタと並行して作業することは、それほど簡単ではありません。

レジ係を追加して注文を受け取り、ドリンクを提供すると、バリスタは独立してドリンクを準備することができます。 顧客について何も知る必要はありません。 このようなシナリオでは、このレジ係が、イベントを保持するイベント ストアと呼ばれます。 イベント ソーシングによって複雑さが増しますが、デカップリングも追加されます。

1. イベント: Alex はコーヒーを購入します。

レジ担当者: (最初の) 注文 (Alex の場合): コーヒー

2. イベント: Alex はカプチーノを購入します。

"レジ係:(2 番目) 注文 (Alex):カプチーノ"

コーヒーを購入するためのイベント ソーシングを示す視覚化。

テレメトリ データはリアルタイム イベントです

考えることができる他の例もあります。 たとえば、食品メーカーや医薬品メーカー向けの冷凍システムを実行するシナリオを想像してみてください。 システム内の温度やその他の関連データを一定に制御する必要があります。 テレメトリ データを認識し、それを自動的に制御することは、成功に不可欠です。 テレメトリを 2 秒ごとに測定し、データが分析、処理、処理される制御システムに送信することは、イベント ドリブン システムです。 また、ビジネスの悲惨な結果を避けるために迅速に対応することが重要であるため、データをリアルタイムで処理する必要があります。