第10章. 基本的なプロデューサマイクロサービスとコンシューママイクロサービス
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
基本的なプロデューサとコンシューマ(BPC)のマイクロサービスは、1つ以上のイベ ントストリームからイベントを取り込み、必要な変換やビジネスロジックを適用し、必要 なイベントを出力イベントストリームに発行する。同期リクエスト/レスポンスI/Oもこのワークフローの一部かもしれないが、そのトピックは第13章で詳しく説明する。この章では、イベントドリブン・コンポーネントに焦点を絞る。
BPCマイクロサービスの特徴は、基本的なコンシューマクライアントとプロデューサクライアントを使用することである。基本的なコンシューマクライアントには、イベントスケジューリング、透かし、実体化のメカニズム、変更ログ、ローカルステートストアを持つ処理インスタンスの水平スケーリングは含まれていない。11章と12章では、これらの機能について詳しく説明する。これらの機能を提供するために独自のライブラリを開発することは確かに可能だが、それはこの章の範囲を超えている。したがって、BPCパターンがあなたのビジネス要件に合うかどうか、慎重に検討する必要がある。
プロデューサクライアントとコンシューマクライアントは、一般的に使用されている言語ですぐに利用可能であり、イベントドリブンマイクロサービスでは認知のオーバーヘッドを下げることができる。境界づけられたコンテキストのワークフロー全体は、単一のマイクロサービスアプリケーションのコード内に含まれ、マイクロサービスの責任をローカライズして理解しやすく保つ。ワークフローは、(実装の複雑さに応じて)1つ以上のコンテナに簡単にラップすることもでき、マイクロサービスのコンテナ管理ソリューションでは、それをデプロイして実行することができる。
BPCはどこで効果を発揮するのか?
BPCマイクロサービスは、フル機能のフレームワークコンポーネントのほとんどを欠いているにもかかわらず、幅広いビジネス要件を満たすことができる。ステートレス変換のような単純なパターンは、決定論的なイベントスケジューリングが不要なステートフル・パターンと同様に、容易に実装できる。
複数のインスタンス間でローカル状態をスケーリングし、インスタンス障害から回復することは、フル機能のストリーミングフレームワークなしでは困難であるため、BPC実装では内部状態ストアよりも外部状態ストアがより一般的に使用される。外部ステートストアは、データのバックアップとリカバリーのメカニズムだけでなく、均一なアクセスで複数のマイクロサービスインスタンスを提供できる。
基本的なBPC実装が特にうまく機能するユースケースをいくつか見てみよう。
既存およびレガシー・システムとの統合
レガシーシステムは、基本的なプロデューサ/コンシューマクライアントをコードベースに統合することで、イベントドリブンアーキテクチャに参加することができる。この統合は、イベントドリブンなマイクロサービスを採用する初期段階から開始されることが多く、レガシーシステムをイベントドリブンなエコシステムにブートストラップする戦略の一部となることもある(第4章参照)。レガシーシステムは、必要に応じてイベントブローカーの単一信頼できる情報源に独自のデータをプロデュースし、他のイベントストリームから必要なイベントをコンシュームバックする。
シナリオによっては、レガシーコードベースを安全に変更して、イベントストリームからデータを生成したり消費したりすることはできない。 ...
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