BFF アーキテクチャについて話す

BFF アーキテクチャの学習

1. BFFとは?

BFF はフロントエンドを提供するバックエンドで、フルネームはBackend For Frontendです。BFF の位置はクライアントとサーバーの間にあり、ミドルウェアとして機能します。

2. BFF は何をしますか?

次のように構造分布図を見てみましょう。

ここに画像の説明を挿入

この図を分析すると、BFF がサーバーのインターフェイス データを収集し、並べ替えと処理を行ってからフロント エンドに渡すことが容易にわかります。このように、フロントエンドはインターフェイスを直接呼び出してデータを直接取得できます。また、バックエンドは、フロントエンドのニーズに合わせてビジネス コードをまとめる必要はありません。フロントエンドとバックエンドの開発を容易にします。BFF の下向きはサーバー側のさまざまなマイクロサービスであり、上向きはクライアントにインターフェイス サービスを提供することです。バックエンドは、BFF レイヤーのフロント エンドによって提供される RPC インターフェースであり、BFF レイヤーは、サーバーの RPC インターフェースを直接呼び出してデータを取得し、必要に応じてデータを処理して、BFF 全体のクローズド ループを完了します ( Node+GraphQL テクノロジースタックに基づく)

3. BFF の長所と短所は何ですか?

BFF の利点:

  1. フロントエンドとバックエンドの独立により、デカップリング効果が得られます。
  2. マルチターミナル アプリケーションの適応。異なるターミナルでサーバー インターフェイスのデータ要件が異なる場合、BFF レイヤーを調整し、異なる API 呼び出しを行って Http リクエストを減らすことができます。

BFF の欠点:

  1. 繰り返し開発: BFF アプリケーションを開発する場合、BFF の繰り返し開発の問題が発生します。開発費の増加。
  2. メンテナンス コストの増加: BFF アプリケーションの開発では、BFF を維持する必要があります。
  3. 複雑なリンク: BFF プロセスでは、クライアントだけでなくサーバーも考慮する必要があるため、プロセスが煩雑になります。
  4. リソースの浪費: 追加の BFF レイヤーがあるため、リソースの消費量が以前よりも多くなります。

BFF の欠点を解決するための提案は、負荷の均一性、監視とアラーム、およびその他の操作と保守操作です。

要約すると、上記のすべてのソリューションは ServerLess、サーバーレス = Faas (サービスとしての機能) + Baas (サービスとしてのバックエンド) です。

Fass: これは、ユーザーが基本的なフレームワークを構築および保守することなく、これらの機能を開発、実行、および管理するためのプラットフォームを提供するサービス プロバイダーであり、イベント駆動型およびメッセージ トリガー型の機能サービスです。

Baas: サーバーにサービスを提供し、多くのバックエンド コンポーネントを含み、優れた API ベースのサードパーティ サービスです。データベース、メッセージ キュー、ログ サービスなどが含まれます。

4. BFFの適用環境

  1. クライアントが表示するために大量のデータを必要とするが、アプリはそれほど多くのデータを必要としない場合、またはページが多くのインターフェイス リクエストを必要とする場合、BFF を使用してデータを組み合わせることができます。
  2. 反復表示の場合、ページに表示されるデータが異なるように、新しいバージョンのページ表示に迅速な開発が必要です。
  3. サーバー側のデータの表示形式が異なる場合は、フロントエンドの構成を改善するために、適切なデータ形式を提供してください。

おすすめ

転載: blog.csdn.net/weixin_51220967/article/details/127496432