API Gateway — ein Vermittlungsdienst zwischen Clients und internen Mikrodiensten. Es aggregiert Aufrufe, verwaltet die Routenführung, Autorisierung, wendet Sicherheits- und Begrenzungsrichtlinien an und transformiert sowie proxyisiert Anfragen.
Das API Gateway ist notwendig, um die interne Struktur der Dienste vor der Außenwelt zu verbergen und die Interaktion zu vereinheitlichen. Dies hilft, die Kopplung zu reduzieren, die Entwicklung von Frontends zu beschleunigen und eine zentrale Kontrolle über den Zugriff und das Logging zu gewährleisten.
Ein Beispiel für die Konfiguration von nginx als einfaches API Gateway:
server { listen 80; location /user/ { proxy_pass http://localhost:8081/; } location /order/ { proxy_pass http://localhost:8082/; } }
Wichtige Merkmale:
Kann ein Dienst direkt auf einen anderen Dienst zugreifen, ohne das API Gateway zu verwenden?
Interne Dienste können direkte Aufrufe für private Szenarien verwenden, aber für externe Clients ist das API Gateway der Hauptzugang.
Ist das API Gateway ein Single Point of Failure?
Ja, wenn keine Clusterung und Lastverteilung eingerichtet wird. Es ist wichtig, mehrere Instanzen zu betreiben und einen Lastenausgleich zu verwenden.
Kann das API Gateway Antworten cachen?
Ja, fortschrittliche Gateways können GET-Anfragen cachen, was die Last auf die Dienste reduziert und die Datenrückgabe beschleunigt. Ein Beispiel für die Cache-Einstellung in Kong:
plugins: - name: proxy-cache config: strategy: memory content_type: [application/json] cache_ttl: 300