إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
في هذا الدرس، تكتشف كيفية إنشاء خدمة يوريكا مصممة لتظل تعمل في مواجهة الأعطال والطلب العالي. بناء خدمة يوريكا عالية التوفر يساعد في ضمان أن يكون سجل الخدمات الذي تستخدمه لتطبيقات حاويات Azure متاحا دائما للعملاء بغض النظر عن الطلب.
تحقيق حالة توفر عالية في يوريكا يشمل ربط عدة نسخ من خوادم يوريكا معا لتشكيل عنقود. يوفر نظام المجموعة موارد بحيث إذا فشل خادم يوريكا واحد، تظل الخدمات الأخرى متاحة للطلبات.
في هذا البرنامج التعليمي، سوف تتعلّم:
- أنشئ خوادم يوريكا لمكونات Spring.
- ربط خادمين من خوادم Eureka لمكونات Spring معا في نظام مجموعة.
- ربط تطبيق حاوية بكلا خادمي يوريكا لاكتشاف الخدمة المتاحة بشكل عال.
المتطلبات الأساسية
- حساب Azure مع اشتراك نشط. إذا لم يكن لديك حساب بالفعل، يمكنك إنشاء حساب مجانا.
- واجهة سطر الأوامر (CLI) في Azure.
الاعتبارات
عند تشغيل مكونات جافا المدارة في تطبيقات الحاويات، كن على علم بالتفاصيل التالية:
| العنصر | الشرح |
|---|---|
| النطاق | تعمل المكونات في نفس البيئة مثل تطبيق الحاوية المتصل. |
| تغير الحجم | المكونات لا يمكن أن تتوسع. يتم تعيين خصائص minReplicas التحجيم و maxReplicas على 1. |
| الموارد | تم إصلاح تخصيص موارد الحاوية للمكونات. عدد أنوية المعالج هو 0.5، وحجم الذاكرة 1 جيجابايت. |
| التسعير | تندرج فوترة المكونات ضمن التسعير المستند إلى الاستهلاك. يتم احتساب الموارد التي تستهلكها المكونات المدارة بمعدلات النشاط أو الخمول، حسب استخدام الموارد. يمكنك حذف المكونات التي لم تعد قيد الاستخدام لإيقاف الفوترة. |
| Binding | تتصل تطبيقات الحاوية بمكون عبر ربط. تدخل الروابط التكوينات في متغيرات بيئة تطبيق الحاوية. بعد تأسيس الربط، يمكن لتطبيق الحاوية قراءة قيم التكوين من متغيرات البيئة والاتصال بالمكون. |
إعداد الموارد الأولية
استخدم الخطوات التالية لإنشاء بعض الموارد التي تحتاجها لمجموعة خدمات يوريكا الخاصة بك.
إنشاء متغيرات تحتوي على قيم تكوين التطبيق.
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"استخدم واجهة برمجة Azure لتسجيل الدخول إلى Azure.
az loginقم بإنشاء مجموعة موارد.
az group create --name $RESOURCE_GROUP --location $LOCATIONإنشاء بيئة تطبيقات الحاوية الخاصة بك.
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
ربط المكونات معا لتشكيل تجمع
لكي تعمل خوادم يوريكا بتكوين عالي التوافر، يجب ربطها معا كعنقود.
ربط خادم يوريكا الأول بالخادم الثاني.
az containerapp env java-component eureka-server-for-spring update \ --environment $ENVIRONMENT \ --resource-group $RESOURCE_GROUP \ --name $EUREKA_COMPONENT_FIRST \ --bind $EUREKA_COMPONENT_SECONDربط خادم يوريكا الثاني بالخادم الأول.
az containerapp env java-component eureka-server-for-spring update \ --environment $ENVIRONMENT \ --resource-group $RESOURCE_GROUP \ --name $EUREKA_COMPONENT_SECOND \ --bind $EUREKA_COMPONENT_FIRST
توزيع التطبيق وربطه
مع ربط مكونات الخادم معا، يمكنك إنشاء تطبيق الحاوية وربطه بمكوني يوريكا.
إنشاء تطبيق الحاوية.
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ربط تطبيق الحاوية بأول مكون خادم Eureka.
az containerapp update \ --name $APP_NAME \ --resource-group $RESOURCE_GROUP \ --bind $EUREKA_COMPONENT_FIRSTربط تطبيق الحاوية إلى مكون خادم Eureka الثاني.
az containerapp update \ --name $APP_NAME \ --resource-group $RESOURCE_GROUP \ --bind $EUREKA_COMPONENT_SECOND
عرض لوحة المعلومات
هام
لعرض لوحة تحكم خادم يوريكا للسبرينغ، تحتاج إلى Microsoft.App/managedEnvironments/writeتعيين ، Owner، أو Contributor الدور لحسابك لمورد بيئة تطبيقات الحاويات.
- إذا كان لديك بالفعل أحد هذه الأدوار، انتقل إلى قسم الحصول على رابط لوحة التحكم للحصول على الرابط وعرض لوحة التحكم.
- إذا كنت ترغب في إنشاء تعريف دور مخصص وتخصيصه لحسابك، قم بالخطوات التالية: إنشاء وتعيين دور مخصص.
- إذا أردت تعيين دور أو لحسابك
OwnerContributorللمورد، قم بتعيين ذلك، ثم انتقل إلى قسم الحصول على رابط لوحة التحكم .
إنشاء دور مخصص وتعيينه
إنشاء تعريف الدور المخصص. قبل تشغيل هذا الأمر، استبدل الرقم المؤقت في القيمة
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>"] }'احصل على معرف الموارد لبيئة تطبيقات الحاويات.
export ENVIRONMENT_ID=$(az containerapp env show \ --name $ENVIRONMENT --resource-group $RESOURCE_GROUP \ --query id \ --output tsv)خصص الدور المخصص لحسابك لمورد بيئة تطبيقات الحاوية. قبل تشغيل هذا الأمر، استبدل الوضع المؤقت في القيمة
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