بناء بوابة سحابة الربيع

مكتمل

في هذه الوحدة، سننشئ Spring Cloud Gateway وننشرها على Azure Spring Apps.

يتم استخدام عبّارات لتوجيه حركة مرور HTTP العامة إلى microservices:

  • إنها التعامل مع منطق التوجيه.
  • إنها تؤمن الوصول إلى الخدمات المصغّرة، التي لن تكون متاحة بشكل عام.
  • كما يمكن أن تكون لديهم قدرات جودة الخدمة (QoS)، مثل القيام بتحديد معدل HTTP.

إنشاء بوابة سحابة الربيع

لإنشاء البوابة الخاصة بنا، نستخدم https://start.spring.io مع سطر الأوامر:

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 -

إشعار

Cloud GatewayEureka Discovery Clientنستخدم المكونات و وConfig Client.

تكوين التطبيق

في src/main/resources/application.properties ملف التكوين، أضف الخاصية التالية:

spring.main.allow-bean-definition-overriding=true
spring.cloud.gateway.discovery.locator.enabled=true
  • الجزء spring.main.allow-bean-definition-overriding=true هو تكوين Spring Cloud Gateway لاستخدام Spring Cloud Discovery Server التي تم تكوينها في مكتبة عميل Azure Spring Apps.
  • spring.cloud.gateway.discovery.locator.enabled=trueالجزء هو تكوين بوابة سحابة الربيع لاستخدام سجل خدمة سحابة الربيع لاكتشاف microservices المتاحة.

إنشاء التطبيق على Azure Spring Apps

كما هو الحال في الوحدة النمطية السابقة، قم بإنشاء تطبيق معين todo-gateway في مثيل Azure Spring Apps. بما أن هذا التطبيق بوابة، سنضيف علامة --assign-endpoint حتى يتم كشفه بشكل عام.

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

قم بنشر التطبيق

يمكنك الآن إنشاء مشروع todo-gateway وإرساله إلى 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 ..

اختبار المشروع في السحابة

  1. انتقل إلى التطبيقات في مثيل Azure Spring Apps.

    1. تحقق من أن todo-gateway لها حالة تسجيل تشير إلى 1/1. توضح هذه المعلومات أنها مسجّلة بشكل صحيح في Spring Cloud Service Registry.
    2. حدد todo-gateway للحصول على مزيد من المعلومات حول microservice.
  2. انسخ/الصق URL العام الذي تم توفيره. حافظ على عنوان URL هذا سهل الاستخدام للأبواب اللاحقة.

    هناك نقطة نهاية اختبار - مثل الخدمات المصغرة - ولكن يتم عرض البوابة مباشرة على الإنترنت، لذلك سنستخدم عنوان URL العام.

نظرا لأن البوابة متصلة بسجل خدمة Spring Cloud، يجب أن تفتح التوجيهات تلقائيا إلى الخدمات المصغرة المتوفرة، مع مسارات URL في شكل /MICROSERVICE-ID/**: [يجب أن يكون معرف MICROSERVICE بالأحرف الكبيرة]

todo-service اختبر نقطة نهاية الخدمة المصغرة عن طريق القيام بما يلي: curl https://XXXXXXXX-todo-gateway.azuremicroservices.io/TODO-SERVICE/ (استبدال XXXXXXXX باسم مثيل Azure Spring Apps).

كما في الوحدة النمطية السابقة، يجب أن تكون نتيجة هذا الأمر العناصر الثلاثة التي تم إدراجها في البداية في قاعدة بيانات MySQL:

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