Sestavení brány Spring Cloud

Dokončeno

V tomto modulu sestavíme bránu Spring Cloud a nasadíme ji v Azure Spring Apps.

Brány se používají ke směrování veřejného provozu HTTP na mikroslužby:

  • Obstarávají logiku směrování.
  • Zabezpečí přístup k mikroslužbám, které nebudou veřejně dostupné.
  • Brány také můžou mít funkce QoS (Quality of Service). Můžou například omezovat rychlost HTTP.

Vytvoření brány Spring Cloud

K vytvoření brány používáme https://start.spring.io s příkazovým řádkem:

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 -

Poznámka:

Používáme Cloud Gateway, Eureka Discovery Clienta Config Client komponenty.

Konfigurace aplikace

Do konfiguračního souboru src/main/resources/application.properties přidejte následující vlastnost:

spring.main.allow-bean-definition-overriding=true
spring.cloud.gateway.discovery.locator.enabled=true
  • Součástí spring.main.allow-bean-definition-overriding=true je konfigurace brány Spring Cloud tak, aby používala bean serveru Spring Cloud Discovery nakonfigurovanou v klientské knihovně Azure Spring Apps.
  • Část spring.cloud.gateway.discovery.locator.enabled=true konfiguruje bránu Spring Cloud, aby bylo možné použít registr služby Spring Cloud ke zjištění dostupných mikroslužeb.

Vytvoření aplikace v Azure Spring Apps

Stejně jako v předchozím modulu vytvořte v instanci Azure Spring Apps konkrétní todo-gateway aplikaci. Vzhledem k tomu, že tato aplikace je brána, přidáme --assign-endpoint příznak, aby se veřejně zveřejnila.

az spring app create --name todo-gateway --service "$SPRING_CLOUD_NAME" --resource-group "$RESOURCE_GROUP_NAME" --runtime-version Java_17 --assign-endpoint

Nasazení aplikace

Teď můžete vytvořit projekt todo-gateway a odeslat ho do 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 ..

Testování projektu v cloudu

  1. Přejděte na Aplikace v instanci Azure Spring Apps.

    1. Ověřte , že brána todo-gateway má stav registrace s informací 1/1. Tyto informace ukazují, že je správně zaregistrovaná v registru služby Spring Cloud.
    2. Další informace o této mikroslužbě získáte, když vyberete todo-gateway.
  2. Zkopírujte nebo vložte zadanou veřejnou adresu URL. Tuto adresu URL si nechte po ruce, protože ji budete potřebovat v dalších oddílech.

    Existuje testovací koncový bod, například pro mikroslužby, ale brána je přímo zpřístupněná na internetu, takže použijeme veřejnou adresu URL.

Vzhledem k tomu, že je brána připojená k registru služby Spring Cloud, měla by automaticky otevírat trasy do dostupných mikroslužeb s cestami URL ve formě /MICROSERVICE-ID/**: [MIKROSLUŽBA-ID musí být velkými písmeny]

todo-service Otestujte koncový bod mikroslužby provedením následujícího: curl https://XXXXXXXX-todo-gateway.azuremicroservices.io/TODO-SERVICE/ (nahrazení XXXXXXXX názvem vaší instance Azure Spring Apps).

Stejně jako v předchozím modulu by měl příkaz vrátit tři položky, které byly původně vložené do databáze MySQL:

[{"id":"1","description":"First item","done":true},{"id":"2","description":"Second item","done":true},{"id":"3","description":"Third item","done":false}]