2015-10-16 20 views
7

私の新しいプロジェクトでは、マイクロサービス、APIゲートウェイを使用する必要があります。だから私はマイクロサービスについての詳細な情報を集めましたが、Api Gatewayの部分は明らかではありません。私の質問があるAPIゲートウェイ付きマイクロサービス

  1. は誰もがその一部をルーティング要求がアピ ゲートウェイで行われているかを知っていますか?
  2. 条件ならばそれは簡単なことで行うことができますです[擬似コード:(キーワード==「製品」)場合 その後、ルート(「製品サービス」)]?
  3. それを行うには、より良い方法ですか?

私はC#.Netを使用してApiを開発しています。
は、私はあなたがかなりの3つの質問を尋ね、彼らはすべての多少ので、私は一緒にすべての3つに対処するために全力を尽くすよ関連しているhttps://www.nginx.com/blog/building-microservices-using-an-api-gateway/

Api Gateway

+1

APIゲートウェイは、安全なプロキシ+ロギングのように機能します。 'product'サービスにアクセスするURLを渡すことができ、ゲートウェイはそれを代理します。 – sed

答えて

9

からのAPIゲートウェイに関するいくつかの情報を得ました。

APIゲートウェイのリクエストルーティングは単なるプロキシではなく、実装では、下流のサービスに転送する前にリクエストを調べる条件が含まれません。 APIゲートウェイは、要求が下流のサービスに行く許可を持っていることを確認するために、認証もレイヤー上で処理されるサービスへの唯一のエントリポイントになりそうです。認証は別のサービス自体である可能性があります。上位レベルのAPIゲートウェイの実装は、すべてのダウンストリームサービス上のエンドポイントのすべてではないにしても、ほとんどの場合でも統合する可能性があります。

商品の一覧表示、商品の検索、ショッピングカートなどのサービスを含む電子商取引アプリケーションなどの小さな例を考えてみましょう。 APIゲートウェイはまた、これらの同じエンドポイントを持ち、要求を担当するサービスに要求をさらに委任します。この例のAPIは、すべての商品を表示するには/products、商品を検索する場合は/products?query=...、ショッピングカートに商品を表示する場合は/carts/:id/productsと表示されます。希望があなたの質問に答えることを望みます。

これ以外にも、新しいプロジェクトについて言及したことがありますが、あなたのチームが本当に小さいのであれば、新しいプロジェクトに使用するには最高のアーキテクチャではないかもしれないという2セントを与えたいと思います。運用上のオーバーヘッドが大きくなります。標準化、導入の自動化、統合などを必要とするオーバーヘッドおそらく、従来のMVCアーキテクチャーから始まり、プロジェクトが始まったときにゆっくりとマイクロサービスに進化させることが最善の方法です。

+0

それはいくつかのアイデアを提供します。ありがとう! –

1

アーキテクチャに応じて、CoreOS(https://github.com/weaveworks/weave)を使用した織りのような本当にクールなソフトウェアを使用できます。 Dockerを使用してアプリケーションをCoreOSノードに配布し、内部DNSをWeaveが処理します。

これは本当に素晴らしいことです。なぜなら、リクエストをアプリケーション名にポートで転送して、離れているからです。

は、例えば、ユーザの要求は我々のゲートウェイがノードに実装された

application.com/api/apiName/request/path。jsを呼び出し、apiの後に/ apiを指定してそのapiにルーティングし、URLの次のパスを呼び出し自体に追加します。

したがって、ゲートウェイからの要求は、apiName:8080/request/pathとして内部的にプロキシされます。その点で、パスはリクエストから動的に作成されるため、APIは新しいサービスが起動したときに変更する必要はありません。

これは、異なるAPIのパスを追跡してどこかに格納することを心配する必要がないので、これは素晴らしいことです。

もしそうでなければ、より簡単にするためにいくつかの(おそらくは外部の)エンドポイントのリストを維持する必要があります。これは、API自体からプログラムで行うことができます。

しかし、あなたの要件はわかりませんし、ウィルが答えているように、かなりのインフラコストがかかります。しかし、我々のリリースでは、複数レイヤーでコードを変更する心配がなく、新しいAPIはゲートウェイのプロキシ、ロギング、および認証を無料で入手できるので、速くて簡単です。

関連する問題