2017-05-04 10 views
3

私はマイクロサービスアーキテクチャを使用してアプリケーションを構築しています。それは5つのレストAPIと1つのUI(シングルページアプリケーション)マイクロサービスを持っています。マイクロサービスアーキテクチャでUIのデータ集計を行う場所はどこですか

enter image description here

誰もがデータ集計を行うための最善の選択肢である私に助言してもらえますか?

  1. 静的なWebアプリケーションとしてUIアプリケーションを作成し、フロントエンド(ブラウザのjavascriptフレームワークを使用)からすべてのAPI要求を行い、すべてのデータ集約がフロントエンドで実行され、レンダリングされますか?
  2. UIアプリケーションを動的Webアプリケーションとして作成し、WebアプリケーションバックエンドですべてのAPI要求とデータ集約を実行しますか?
+2

いつも通り、認証とhttps終了のような問題を処理するApiゲートウェイでオプション2を使用します。 –

+0

オプション1にはどのシナリオが最適ですか? – Dinusha

+1

オプション1は、あなたが認証を持っていないか、マイクロサービスの健全性を監視したくない場合、またはロードバランスを使用しない場合、レート制限などを使用しない場合(これらはすべてオプション1で使用できますが、より難しいです)。ここをクリックしてAPIゲートウェイを使用するメリットまたはケースhttp://microservices.io/patterns/apigateway.html –

答えて

2

お探しのパターンがAPI Gatewayのようです。時には "Edge"または "EdgeService"とも呼ばれます。これを使用して、クラスタへの単一のエントリポイントとして、サービスコール結果を集約することができます。その他のユースケースには、セントラル認証および/または認可、ルーティング、モニタリング、および復元力が含まれます。

一部の人は、ゲートウェイ経由で外部コールをルーティングするだけで、ゲートウェイ経由で内部コールをルーティングする人もいます。ここで

に見て、いくつかの技術:Netflixのスタックから

Zuul。あなたは集約のためのフィルターを作成しています。ドキュメントthisを参照してください。

Amazon API gateway - AWSで実行している場合。通常は、集約のために独自のラムダサービスを使用します。

Kong。ネイティブ・アグリゲーション・サポートはありませんが、提供する個別のアグリゲーション・サービスに転送できます。

+1

マイクロサービスプラットフォームに複数のUIがある場合は、複数のAPIゲートウェイを使用する必要がありますか?私が自分のRest APIマイクロサービスの変更を行うたびにAPI Gatewayを私のUIデータアグリゲーターとして使用すると、API Gatewayを変更する必要があります。それから、私も展開する必要があります。また、ボトルネックとシングルポイントの障害になる可能性があります。私は、API GatewayがAPIの中央認証および/または承認とルーティングと監視を使用できることに同意します。 – Dinusha

+0

APIゲートウェイは、それを正しく実装すると、集約されたサービスの1つが変更されたときには変更されません。私のための複数のUIは、(静的な)JavaScriptライブラリのいくつかのセットをクライアントに提供することを意味します。 UIが使用するサービスが重複している場合、クライアントバインディングは複製されず、それらのJavaScriptライブラリの依存関係として共有されることが期待されます。 –

+0

お返事ありがとうございます。あなたの答えによると、静的なWebアプリケーションを作成し、APIゲートウェイを介してRest APIを伝えるためにこれを対処する最善の方法と思います。 Webアプリケーションのバックエンドを持っています。この場合、Webアプリケーションにバックエンドは存在しません。 UI用のクライアント側のjavascriptのみで構成されます。それは良いアプローチですか? – Dinusha

関連する問題