it-swarm.com.de

API-Gateway vs. Reverse-Proxy

Um mit der Microservice-Architektur fertig zu werden, wird sie häufig zusammen mit einem Reverse Proxy (wie Nginx oder Apache httpd) und für die Implementierung von Querschnittsthemen verwendet API-Gateway-Muster wird verwendet . Manchmal erledigt Reverse Proxy die Arbeit des API-Gateways.
Es wird gut sein, klare Unterschiede zwischen diesen beiden Ansätzen zu erkennen. Es sieht so aus, als ob der potenzielle Vorteil der Verwendung von API-Gateways darin besteht, dass mehrere Microservices aufgerufen und die Ergebnisse aggregiert werden. Alle anderen Verantwortlichkeiten des API-Gateways können mit Reverse Proxy implementiert werden.

  • Authentifizierung (Dies kann mithilfe von Nginx-LUA-Skripten erfolgen);
  • Transportsicherheit. Es selbst Reverse Proxy-Aufgabe;
  • Lastverteilung
  • ....

Darauf aufbauend gibt es also mehrere Fragen:

  1. Ist es sinnvoll, API-Gateway und Reverse-Proxy gleichzeitig zu verwenden (als Beispiel request-> Api-Gateway-> Reverse-Proxy (nginx) -> Concrete Mictoservice)? In welchen fällen
  2. Was sind die anderen Unterschiede, die mit dem API-Gateway implementiert werden können und die nicht mit dem Reverse-Proxy implementiert werden können und umgekehrt?
77
user1459144

Es ist einfacher, an sie zu denken, wenn Sie feststellen, dass sie sich nicht gegenseitig ausschließen. Stellen Sie sich ein API-Gateway als eine Reverse-Proxy-Implementierung eines bestimmten Typs vor.

In Bezug auf Ihre Fragen ist es nicht ungewöhnlich, dass beide in Verbindung verwendet werden, wenn das API-Gateway als Anwendungsebene behandelt wird, die sich hinter einem Reverse-Proxy für den Lastenausgleich und die Integritätsprüfung befindet. Ein Beispiel wäre so etwas wie eine WAF-Sandwich-Architektur, bei der Ihr Webanwendungs-Firewall/API-Gateway von Reverse-Proxy-Schichten eingeschlossen ist, eine für die WAF selbst und die andere für die einzelnen Mikrodienste, mit denen es kommuniziert.

Die Unterschiede sind sehr ähnlich. Es ist nur eine Nomenklatur. Wenn Sie ein grundlegendes Reverse-Proxy-Setup durchführen und mehr Dinge wie Authentifizierung, Ratenbeschränkung, dynamische Konfigurationsaktualisierungen und Serviceerkennung ausprobieren, wird dies mit größerer Wahrscheinlichkeit als API-Gateway bezeichnet.

60
Justin Talbott

Ich glaube, API Gateway ist ein Reverse-Proxy, der dynamisch über API und möglicherweise über die Benutzeroberfläche konfiguriert werden kann, während traditioneller Reverse-Proxy (wie Nginx, HAProxy oder Apache) über die Konfigurationsdatei konfiguriert wird und neu gestartet werden muss, wenn sich die Konfiguration ändert. Daher sollte API-Gateway verwendet werden, wenn sich Routingregeln oder andere Konfigurationen häufig ändern. Zu Ihren Fragen:

  1. Es ist sinnvoll, solange jede Komponente in dieser Sequenz ihren Zweck erfüllt.
  2. Unterschiede bestehen nicht in der Featureliste, sondern in der Art und Weise, wie Konfigurationsänderungen vorgenommen wurden.

Darüber hinaus wird API Gateway häufig in Form von SAAS bereitgestellt, beispielsweise Apigee oder Tyk .

Hier ist auch mein Tutorial zum Erstellen eines einfachen API-Gateways mit Node.js https://memz.co/api-gateway-microservices-docker-node-js/

Ich hoffe es hilft.

22