Um mit der Microservice-Architektur fertig zu werden, wird sie häufig zusammen mit einem Reverse Proxy (wie Nginx oder Apache httpd) verwendet, und für Querschnittsthemen wird das API-Gateway-Muster für die Implementierung verwendet . Manchmal erledigt der Reverse Proxy die Arbeit des API-Gateways.
Es wird gut sein, klare Unterschiede zwischen diesen beiden Ansätzen zu sehen. Es sieht so aus, als ob der potenzielle Vorteil der Verwendung von API-Gateways darin besteht, mehrere Microservices aufzurufen und die Ergebnisse zu aggregieren. 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
- ....
Auf dieser Grundlage gibt es mehrere Fragen:
- Ist es sinnvoll, API-Gateway und Reverse-Proxy gleichzeitig zu verwenden (als Beispiel request-> Api-Gateway-> Reverse-Proxy (nginx) -> konkreter Mictoservice)? In welchen Fällen?
- Was sind die anderen Unterschiede, die mit dem API-Gateway implementiert werden können und nicht mit dem Reverse-Proxy implementiert werden können und umgekehrt?