Publication date:
11/6/24
KrakenD: Kompleksowy przewodnik instalacji i konfiguracji
Wprowadzenie
KrakenD to wysokowydajny API Gateway typu open-source, który upraszcza i przyspiesza dostarczanie danych przez scentralizowane zarządzanie żądaniami HTTP i gromadzenie odpowiedzi z różnych mikroserwisów. Dzięki jego elastycznym możliwościom, możesz zredukować liczbę zapytań do serwera, poprawić czas odpowiedzi i uprościć infrastrukturę aplikacji. KrakenD sprawdzi się idealnie zarówno w środowiskach deweloperskich, jak i produkcyjnych.
W tym artykule omówimy krok po kroku proces instalacji oraz konfiguracji KrakenD.
Czym jest KrakenD i dlaczego warto go używać?
KrakenD działa jako API Gateway i umożliwia integrację danych z wielu źródeł, ograniczając potrzebę wielokrotnych wywołań API. Jego główne zalety to:
Wysoka wydajność: Dzięki wykorzystaniu technologii Go, KrakenD jest szybki i sprawnie obsługuje duże wolumeny ruchu.
Modularna architektura: Łatwość dostosowania funkcjonalności dzięki dodatkom i integracjom.
Elastyczność: Umożliwia pełną kontrolę nad routingiem, buforowaniem, limitami prędkości i logowaniem.
Bezpieczeństwo: Wsparcie dla JWT, OAuth2, API Key i innych mechanizmów uwierzytelniania.
KrakenD to doskonały wybór dla projektów, które muszą gromadzić dane z wielu źródeł lub ograniczyć liczbę żądań wysyłanych do backendu.
Instalacja KrakenD
KrakenD można zainstalować na kilka sposobów, jednak w poniższym przewodniku skupimy się na instalacji przy użyciu Dockera.
Instalacja KrakenD za pomocą Docker
1. Utwórz plik docker-compose.yml w katalogu projektu.
2. Utwórz plik konfiguracyjny krakend.json, który będzie zawierał konfigurację dla KrakenD (szczegóły konfiguracji w dalszej części artykułu).
3. Uruchom KrakenD w Dockerze:
KrakenD będzie teraz dostępny pod adresem http://localhost:8080.
Konfiguracja KrakenD
KrakenD wykorzystuje do konfiguracji plik JSON, który definiuje, jak aplikacja będzie obsługiwać żądania HTTP, autoryzację, routing i inne ustawienia. Oto przykład podstawowej konfiguracji w pliku krakend.json.
Przykład pliku krakend.json
Wyjaśnienie konfiguracji
version: Określa wersję konfiguracji. Wersja 2 to najnowsza specyfikacja.
name: Nazwa API Gateway, która pojawi się w logach.
port: Port, na którym będzie nasłuchiwać KrakenD (w tym przypadku 8080).
cache_ttl: Czas życia cache (TTL), domyślnie ustawiony na 300 sekund.
endpoints: Określa punkty końcowe, które KrakenD wystawi publicznie.
endpoint: Określa publiczny adres API, który będzie dostępny przez KrakenD.
method: Definiuje metodę HTTP (np. GET).
backend: Konfiguracja backendu – w tym przypadku żądanie zostanie skierowane do jsonplaceholder.typicode.com.
Po zapisaniu konfiguracji, możesz ponownie uruchomić serwer KrakenD, aby zastosować zmiany.
Rozszerzona konfiguracja: Autoryzacja i buforowanie
KrakenD pozwala na dodanie dodatkowych konfiguracji, takich jak autoryzacja JWT, ograniczenie liczby żądań, logowanie oraz zaawansowane buforowanie.
Autoryzacja JWT
Dodanie autoryzacji JWT wymaga dodania sekcji extra_config w backend lub endpoint. Poniżej znajduje się przykład dla autoryzacji JWT w sekcji endpoints:
Limity żądań
Aby skonfigurować limity żądań dodajemy sekcję rate_limit:
Powyższa konfiguracja ogranicza liczbę żądań do 10 na sekundę dla danego punktu końcowego.
Testowanie i uruchamianie KrakenD
Aby uruchomić KrakenD lokalnie z pliku konfiguracyjnego, wykonaj następujące polecenie:
Dzięki temu poleceniu KrakenD załaduje ustawienia z pliku konfiguracyjnego i uruchomi serwer API Gateway.
Podsumowanie
KrakenD to doskonałe rozwiązanie API Gateway, które dzięki swojej elastyczności i wysokiej wydajności może obsłużyć duże wolumeny ruchu i złożone konfiguracje API. W artykule pokazaliśmy, jak uruchomić KrakenD z Docker Compose oraz w systemie Linux, a także jak skonfigurować podstawowe ustawienia i zaawansowane funkcje, takie jak autoryzacja JWT oraz limity szybkości.
Korzyści z używania KrakenD:
Redukcja liczby wywołań API i uproszczenie infrastruktury,
Wsparcie dla zaawansowanych funkcji, takich jak autory