マイクロサービスについて学んでいますが、REST API
とmicroservices
?を作成しますか?
Goで作業していますが、私の質問はすべての言語に当てはまります。
Microservicesのアプローチは、システム(「コードの山」)を多くの小さなサービスに分割することです。通常、それぞれに独自のサービスがあります。
サービス自体は保持されますsmall。システムが成長するにつれて、より大きなサービスではなく、より多くのサービスがあります。
マイクロサービスは、REST、RPC、または他の方法を使用して相互に通信できるため、RESTまたはAPIはマイクロサービスのトピックに実際に直交しています...
参照: APIとは?英語でお願いします。
API = アプリケーションプログラミングインターフェイス
マイクロサービス= アーキテクチャ
要するに
マイクロサービスの使用を決定する前に、 http://samnewman.io/books/building_microservices/ を読むことをお勧めします(トレーニング目的でない場合)。
回答の大部分は、APIをプログラムインターフェイスとして古くから理解していることに基づいています。現在、この意味は溶けており、一部の開発者が(単純または誤って)アプリケーションのAPIをアプリケーション自体として解釈するため、人々を混乱させ始めています。そのような場合、最新のAPIとマイクロサービスを区別することはできません。それにもかかわらず、APIアプリケーションは多くのマイクロサービスで構成でき、そのほとんどはマイクロサービスのAPIを介してアプリケーション内で対話し、他のAPIはアプリケーションのAPIとしてAPIを公開することができます。また、(サービスとしての)マイクロサービスには、他のマイクロサービス(サービス)を含めることはできませんが、APIベースの呼び出しを介してマイクロサービスの構成を調整することができます。アプリケーションにはマイクロサービスが含まれる場合がありますが、ベストプラクティスでは、他のアプリケーションが含まれない場合があります。
マイクロサービスは、次の場合に明確に定義されますSOC-懸念の分離エンティティ/ドメインレベルで、各エンティティ/ドメインは他のサービスから独立しています。
例ユーザーサービスは、ユーザー関連情報の保存、更新、削除のみを担当します。
マイクロサービスバックエンドとフロントエンドマイクロサービスはさらに2つの部分に分割できます
REST APIは、外界に公開されるエンドポイントの多くであり、上記で説明したように、マイクロサービスでも使用できます。
マイクロサービスアーキテクチャ は、アプリケーションロジックを小さな断片または「コンポーネント」にスライスし、それらの間で動作したり、APIを介して公開したりすることです。
(Web)アプリケーションは、オブジェクトエンティティ(モデル)のすべてのセットとそれらに対する可能な操作を使用してビジネスロジックを設計する必要があります。 (アプリケーションプログラミングインターフェース)[- https://en.wikipedia.org/wiki/Application_programming_interface )は、呼び出しを担当する特定のエントリポイントを公開することにより、アプリケーションにリクエストを行う方法です。適切なアプリケーション操作。
REST(ful)API (Representational State Transferの「REST」)は、少なくともこれらに準拠するAPIです 5制約 :
したがって、これらの概念は明らかに関連していますが、明確に異なる概念です。
RESTfulであるかどうかにかかわらず、[〜#〜] api [〜#〜]は、サーバーによって提供される操作を公開します。より小さなコンポーネントに(microservices)。
また、一般的なWeb(REST)APIはクライアントとサーバー間でHTTPプロトコルを使用しますが、マイクロサービスアーキテクチャ内のコンポーネントは他のプロトコルを使用して通信する場合があります(例 [〜#〜] wamp [〜#〜 ] 、 [〜#〜] amqp [〜#〜] 、 JSON-RPC 、 XML-RPC 、 [〜#〜] soap [〜#〜] 、...)
素人の言葉では、web APIサーバーがあり、それらを複数の独立したミニサーバーに分割する場合、プロキシサーバーとロードバランサーを使用してそれらをクラスター化し、(オプションで、それぞれ個別のデータベースを指定しますエンティティ)、つまりマイクロサービスアーキテクチャです。