マイクロサービスアーキテクチャに対処するために、リバースプロキシ(nginxやApache httpdなど)と併用し、クロスカットの懸念事項の実装によく使用されます APIゲートウェイパターンが使用されます 。時々、リバースプロキシがAPIゲートウェイの機能を実行します。
これら2つのアプローチの明確な違いを見るのは良いことです。 APIゲートウェイの使用による潜在的な利点は、複数のマイクロサービスを呼び出して結果を集約することです。 APIゲートウェイの他のすべての 責任 は、リバースプロキシを使用して実装できます。
これに基づいて、いくつかの質問があります。
それらが相互に排他的でないことに気付いた場合、それらについて考えるのは簡単です。 APIゲートウェイは、特定のタイプのリバースプロキシ実装と考えてください。
ご質問に関しては、APIゲートウェイが、負荷分散とヘルスチェックのためにリバースプロキシの背後にあるアプリケーション層として扱われる場合、両方を組み合わせて使用することは珍しくありません。たとえば、Web Application Firewall/API Gatewayがリバースプロキシ層に挟まれているWAFサンドイッチアーキテクチャのようなものです。1つはWAF自体用で、もう1つは通信する個々のマイクロサービス用です。
違いに関しては、非常によく似ています。それは単なる命名法です。基本的なリバースプロキシのセットアップを行い、認証、レート制限、動的な構成の更新、サービスの検出など、さらに多くの要素を追加し始めると、人々はAPIゲートウェイと呼ぶことになります。
API Gatewayは、APIを介して(場合によってはUIを介して)動的に構成できるリバースプロキシであり、従来のリバースプロキシ(Nginx、HAProxy、Apacheなど)は構成ファイルを介して構成され、構成の変更時に再起動する必要があると思います。したがって、ルーティングルールまたはその他の構成が頻繁に変更される場合は、API Gatewayを使用する必要があります。ご質問へ:
さらに、API Gatewayは、たとえば Apigee または Tyk などのSAASの形式で提供されることがよくあります。
また、Node.jsを使用して簡単なAPI Gatewayを作成する方法に関する私のチュートリアルもあります https://memz.co/api-gateway-microservices-docker-node-js/
それが役に立てば幸い。