Tworzenie bramy Spring Cloud Gateway
W tym module utworzymy bramę Spring Cloud Gateway i wdrożymy ją w usłudze Azure Spring Apps.
Bramy służą do kierowania publicznego ruchu HTTP do mikrousług:
- Obsługują logikę routingu.
- Zabezpieczają dostęp do mikrousług, które nie będą dostępne publicznie.
- Mogą pełnić także spełniać funkcje jakości usług, takie jak ograniczanie szybkości protokołu HTTP.
Tworzenie bramy Spring Cloud Gateway
Aby utworzyć bramę, użyjemy polecenia https://start.spring.io z wierszem polecenia:
curl https://start.spring.io/starter.tgz -d type=maven-project -d dependencies=cloud-gateway,cloud-eureka,cloud-config-client -d baseDir=todo-gateway -d bootVersion=3.1.5.RELEASE -d javaVersion=17 | tar -xzvf -
Uwaga
Używamy składników Cloud Gateway
, Eureka Discovery Client
i Config Client
.
Konfigurowanie aplikacji
W pliku konfiguracji src/main/resources/application.properties
dodaj następującą właściwość:
spring.main.allow-bean-definition-overriding=true
spring.cloud.gateway.discovery.locator.enabled=true
- Częścią
spring.main.allow-bean-definition-overriding=true
jest skonfigurowanie usługi Spring Cloud Gateway pod kątem używania fasoli Spring Cloud Discovery Server skonfigurowanej w bibliotece klienta usługi Azure Spring Apps. - Element
spring.cloud.gateway.discovery.locator.enabled=true
służy do skonfigurowania bramy Spring Cloud Gateway pod kątem korzystania z rejestru Spring Cloud Service Registry w celu odnajdywania dostępnych mikrousług.
Tworzenie aplikacji w usłudze Azure Spring Apps
Podobnie jak w poprzednim module, utwórz określoną todo-gateway
aplikację w wystąpieniu usługi Azure Spring Apps. Ponieważ ta aplikacja jest bramą, dodamy flagę --assign-endpoint
, aby była widoczna publicznie.
az spring app create --name todo-gateway --service "$SPRING_CLOUD_NAME" --resource-group "$RESOURCE_GROUP_NAME" --runtime-version Java_17 --assign-endpoint
Wdrażanie aplikacji
Teraz możesz skompilować projekt todo-gateway i wysłać go do usługi Azure Spring Apps:
cd todo-gateway
./mvnw clean package -DskipTests
az spring app deploy --name todo-gateway --service "$SPRING_CLOUD_NAME" --resource-group "$RESOURCE_GROUP_NAME" --artifact-path target/demo-0.0.1-SNAPSHOT.jar
cd ..
Testowanie projektu w chmurze
Przejdź do obszaru Aplikacje w wystąpieniu usługi Azure Spring Apps.
- Sprawdź, czy brama zadań do wykonania ma stan rejestracji z informacją 1/1. Te informacje pokazują, że jest on poprawnie zarejestrowany w rejestrze Spring Cloud Service Registry.
- Wybierz pozycję todo-gateway, aby uzyskać więcej informacji na temat mikrousługi.
Skopiuj/wklej podany publiczny adres URL. Ten adres URL będzie przydatny w kolejnych sekcjach.
Istnieje testowy punkt końcowy — podobnie jak w przypadku mikrousług — ale brama jest bezpośrednio uwidoczniona w Internecie, więc użyjemy publicznego adresu URL.
Ponieważ brama jest połączona z rejestrem Spring Cloud Service Registry, powinna automatycznie otwierać trasy do dostępnych mikrousług, ze ścieżkami adresów URL w postaci /MICROSERVICE-ID/**
: [IDENTYFIKATOR MIKROUSŁUGI musi być wielkimi literami]
Przetestuj todo-service
punkt końcowy mikrousługi, wykonując następujące czynności: curl https://XXXXXXXX-todo-gateway.azuremicroservices.io/TODO-SERVICE/
(zastępując ciąg XXXXXXXX nazwą wystąpienia usługi Azure Spring Apps).
Tak jak w poprzednim module, wynikiem tego polecenia powinny być trzy elementy, które zostały początkowo wstawione do bazy danych MySQL:
[{"id":"1","description":"First item","done":true},{"id":"2","description":"Second item","done":true},{"id":"3","description":"Third item","done":false}]