مشاركة عبر


البرنامج التعليمي: إنشاء مجموعة مكونات خادم Eureka عالية التوفر في Azure Container Apps

في هذا الدرس، تكتشف كيفية إنشاء خدمة يوريكا مصممة لتظل تعمل في مواجهة الأعطال والطلب العالي. بناء خدمة يوريكا عالية التوفر يساعد في ضمان أن يكون سجل الخدمات الذي تستخدمه لتطبيقات حاويات Azure متاحا دائما للعملاء بغض النظر عن الطلب.

تحقيق حالة توفر عالية في يوريكا يشمل ربط عدة نسخ من خوادم يوريكا معا لتشكيل عنقود. يوفر نظام المجموعة موارد بحيث إذا فشل خادم يوريكا واحد، تظل الخدمات الأخرى متاحة للطلبات.

في هذا البرنامج التعليمي، سوف تتعلّم:

  • أنشئ خوادم يوريكا لمكونات Spring.
  • ربط خادمين من خوادم Eureka لمكونات Spring معا في نظام مجموعة.
  • ربط تطبيق حاوية بكلا خادمي يوريكا لاكتشاف الخدمة المتاحة بشكل عال.

المتطلبات الأساسية

الاعتبارات

عند تشغيل مكونات جافا المدارة في تطبيقات الحاويات، كن على علم بالتفاصيل التالية:

العنصر الشرح
النطاق تعمل المكونات في نفس البيئة مثل تطبيق الحاوية المتصل.
تغير الحجم المكونات لا يمكن أن تتوسع. يتم تعيين خصائص minReplicas التحجيم و maxReplicas على 1.
الموارد تم إصلاح تخصيص موارد الحاوية للمكونات. عدد أنوية المعالج هو 0.5، وحجم الذاكرة 1 جيجابايت.
التسعير تندرج فوترة المكونات ضمن التسعير المستند إلى الاستهلاك. يتم احتساب الموارد التي تستهلكها المكونات المدارة بمعدلات النشاط أو الخمول، حسب استخدام الموارد. يمكنك حذف المكونات التي لم تعد قيد الاستخدام لإيقاف الفوترة.
Binding تتصل تطبيقات الحاوية بمكون عبر ربط. تدخل الروابط التكوينات في متغيرات بيئة تطبيق الحاوية. بعد تأسيس الربط، يمكن لتطبيق الحاوية قراءة قيم التكوين من متغيرات البيئة والاتصال بالمكون.

إعداد الموارد الأولية

استخدم الخطوات التالية لإنشاء بعض الموارد التي تحتاجها لمجموعة خدمات يوريكا الخاصة بك.

  1. إنشاء متغيرات تحتوي على قيم تكوين التطبيق.

    export LOCATION=eastus
    export RESOURCE_GROUP=my-services-resource-group
    export ENVIRONMENT=my-environment
    export EUREKA_COMPONENT_FIRST=eureka01
    export EUREKA_COMPONENT_SECOND=eureka02
    export APP_NAME=sample-service-eureka-client
    export IMAGE="mcr.microsoft.com/javacomponents/samples/sample-service-eureka-client:latest"
    
  2. استخدم واجهة برمجة Azure لتسجيل الدخول إلى Azure.

    az login
    
  3. قم بإنشاء مجموعة موارد.

    az group create --name $RESOURCE_GROUP --location $LOCATION
    
  4. إنشاء بيئة تطبيقات الحاوية الخاصة بك.

    az containerapp env create \
        --name $ENVIRONMENT \
        --resource-group $RESOURCE_GROUP \
        --location $LOCATION
    

إنشاء خوادم للعنقود

إنشاء اثنين من المكونات يوريكا Server ل Spring.

az containerapp env java-component eureka-server-for-spring create \
    --environment $ENVIRONMENT \
    --resource-group $RESOURCE_GROUP \
    --name $EUREKA_COMPONENT_FIRST
az containerapp env java-component eureka-server-for-spring create \
    --environment $ENVIRONMENT \
    --resource-group $RESOURCE_GROUP \
    --name $EUREKA_COMPONENT_SECOND

ربط المكونات معا لتشكيل تجمع

لكي تعمل خوادم يوريكا بتكوين عالي التوافر، يجب ربطها معا كعنقود.

  1. ربط خادم يوريكا الأول بالخادم الثاني.

    az containerapp env java-component eureka-server-for-spring update \
        --environment $ENVIRONMENT \
        --resource-group $RESOURCE_GROUP \
        --name $EUREKA_COMPONENT_FIRST \
        --bind $EUREKA_COMPONENT_SECOND
    
  2. ربط خادم يوريكا الثاني بالخادم الأول.

    az containerapp env java-component eureka-server-for-spring update \
        --environment $ENVIRONMENT \
        --resource-group $RESOURCE_GROUP \
        --name $EUREKA_COMPONENT_SECOND \
        --bind $EUREKA_COMPONENT_FIRST
    

توزيع التطبيق وربطه

مع ربط مكونات الخادم معا، يمكنك إنشاء تطبيق الحاوية وربطه بمكوني يوريكا.

  1. إنشاء تطبيق الحاوية.

    az containerapp create \
        --name $APP_NAME \
        --resource-group $RESOURCE_GROUP \
        --environment $ENVIRONMENT \
        --image $IMAGE \
        --min-replicas 1 \
        --max-replicas 1 \
        --ingress external \
        --target-port 8080
    
  2. ربط تطبيق الحاوية بأول مكون خادم Eureka.

    az containerapp update \
        --name $APP_NAME \
        --resource-group $RESOURCE_GROUP \
        --bind $EUREKA_COMPONENT_FIRST 
    
  3. ربط تطبيق الحاوية إلى مكون خادم Eureka الثاني.

    az containerapp update \
        --name $APP_NAME \
        --resource-group $RESOURCE_GROUP \
        --bind $EUREKA_COMPONENT_SECOND
    

عرض لوحة المعلومات

هام

لعرض لوحة تحكم خادم يوريكا للسبرينغ، تحتاج إلى Microsoft.App/managedEnvironments/writeتعيين ، Owner، أو Contributor الدور لحسابك لمورد بيئة تطبيقات الحاويات.

إنشاء دور مخصص وتعيينه

  1. إنشاء تعريف الدور المخصص. قبل تشغيل هذا الأمر، استبدل الرقم المؤقت في القيمة AssignableScopes بمعرف الاشتراك الخاص بك.

    az role definition create --role-definition '{
        "Name": "Java Component Dashboard Access",
        "IsCustom": true,
        "Description": "Can access managed Java Component dashboards in managed environments",
        "Actions": [
            "Microsoft.App/managedEnvironments/write"
        ],
        "AssignableScopes": ["/subscriptions/<SUBSCRIPTION_ID>"]
    }'
    
  2. احصل على معرف الموارد لبيئة تطبيقات الحاويات.

    export ENVIRONMENT_ID=$(az containerapp env show \
        --name $ENVIRONMENT --resource-group $RESOURCE_GROUP \
        --query id \
        --output tsv)
    
  3. خصص الدور المخصص لحسابك لمورد بيئة تطبيقات الحاوية. قبل تشغيل هذا الأمر، استبدل الوضع المؤقت في القيمة assignee بمعرف كائن المستخدم أو معرف الخدمة.

    az role assignment create \
        --assignee <USER_OR_SERVICE_PRINCIPAL_ID> \
        --role "Java Component Dashboard Access" \
        --scope $ENVIRONMENT_ID
    

احصل على رابط لوحة التحكم

احصل على عنوان URL للوحة معلومات خادم يوريكا ل Spring.

az containerapp env java-component eureka-server-for-spring show \
    --environment $ENVIRONMENT \
    --resource-group $RESOURCE_GROUP \
    --name $EUREKA_COMPONENT_FIRST \
    --query properties.ingress.fqdn \
    --output tsv

يقوم هذا الأمر بإرجاع عنوان URL الذي يمكنك استخدامه للوصول إلى خادم يوريكا للوحة معلومات Spring. من خلال لوحة المعلومات، يمكنك التحقق من أن إعداد خادم Eureka يتكون من نسختين متماثلتين.

لقطة شاشة للوحة تحكم يوريكا للسبرينغ. قسم الحالات المسجلة يعرض تطبيق حاوية وخادمين من يوريكا، جميعهم بحالة مطلقة.

تنظيف الموارد

الموارد التي تم إنشاؤها في هذا الدرس تؤثر على فاتورة Azure الخاصة بك. إذا لم تكن ستستخدم هذه الخدمات على المدى الطويل، قم بتشغيل الأمر التالي لإزالة كل ما تم إنشاؤه في هذا الدرس.

az group delete --resource-group $RESOURCE_GROUP