Architekt systemówDevOps / Architekt

Wyjaśnij funkcję i zasady działania API Gateway w nowoczesnej architekturze.

Zdaj rozmowy kwalifikacyjne z asystentem AI Hintsage

Odpowiedź.

API Gateway — serwis pośredniczący między klientami a wewnętrznymi mikroserwisami. Agreguje wywołania, zarządza routowaniem, autoryzacją, stosuje polityki bezpieczeństwa i limitowania, a także transformuje i proxyzuje żądania.

API Gateway jest potrzebny, aby ukryć wewnętrzną strukturę serwisów przed światem zewnętrznym i ujednolicić interakcję. Pomaga to zmniejszyć powiązania, przyspieszyć rozwój frontendów oraz zapewnić scentralizowaną kontrolę nad dostępem i logowaniem.

Przykład konfiguracji nginx jako najprostszy API Gateway:

server { listen 80; location /user/ { proxy_pass http://localhost:8081/; } location /order/ { proxy_pass http://localhost:8082/; } }

Kluczowe cechy:

  • Scentralizowana autoryzacja, monitorowanie i logowanie
  • Umożliwia dodawanie nowych serwisów bez zmian po stronie klienta
  • Elastycznie zarządza routowaniem i wersjonowaniem API

Pytania z haczykiem.

Czy jeden serwis może komunikować się z innym omijając API Gateway?

Wewnętrzne serwisy mogą korzystać z bezpośrednich wywołań w prywatnych scenariuszach, ale dla klientów zewnętrznych API Gateway jest głównym sposobem dostępu.

Czy API Gateway jest Single Point of Failure?

Tak, jeśli nie skonfigurowano klastrowania i balansowania. Ważne jest uruchomienie kilku instancji i użycie balancera.

Czy API Gateway może cache'ować odpowiedzi?

Tak, zaawansowane gatewaye potrafią cache'ować żądania GET, co zmniejsza obciążenie serwisów i przyspiesza zwracanie danych. Przykład konfiguracji cache w Kong:

plugins: - name: proxy-cache config: strategy: memory content_type: [application/json] cache_ttl: 300