إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
يمكن ل Azure Container Apps تشغيل أي تطبيق Java في حاوية في السحابة مع إعطاء خيارات مرنة لكيفية نشر تطبيقاتك.
عند استخدام Container Apps لتطبيقات Java المعبأة في حاويات، تحصل على:
التحجيم الفعال من حيث التكلفة: عند استخدام خطة الاستهلاك، يمكن لتطبيقات Java تغيير الحجم إلى الصفر. يؤدي التحجيم عندما يكون هناك طلب ضئيل على تطبيقك إلى خفض التكاليف تلقائيا لمشاريعك.
خيارات النشر: تتكامل Azure Container Apps مع Buildpacks، مما يسمح لك بالنشر مباشرة من بناء Maven، باستخدام ملفات Artifact، أو باستخدام ملف Docker الخاص بك.
توزيع JAR (معاينة): يمكنك نشر تطبيق الحاوية مباشرة من ملف JAR.
نشر WAR (معاينة): يمكنك نشر تطبيق الحاوية مباشرة من ملف WAR.
دعم IDE: يمكنك نشر تطبيق الحاوية مباشرة من IntelliJ.
ملاءمة الذاكرة التلقائية (معاينة): تعمل تطبيقات الحاوية على تحسين كيفية إدارة جهاز Java الظاهري (JVM) للذاكرة، مما يجعل الذاكرة الأكثر الممكنة متاحة لتطبيقات Java الخاصة بك.
بناء متغيرات البيئة (معاينة): يمكنك تكوين أزواج قيمة المفتاح المخصصة للتحكم في بناء صورة Java من التعليمات البرمجية المصدر.
تصف هذه المقالة المعلومات التي تحتاج إلى معرفتها أثناء بناء تطبيقات جافا على تطبيقات حاويات أزر.
أنواع التوزيع
عادة ما يعني تشغيل التطبيقات الحاوية أنك بحاجة إلى إنشاء Dockerfile لتطبيقك، ولكن تشغيل تطبيقات Java على Container Apps يمنحك بعض الخيارات.
| النوع | الوصف | يستخدم Buildpacks | يستخدم Dockerfile |
|---|---|---|---|
| بناء التعليمات البرمجية المصدر | يمكنك النشر مباشرة إلى Container Apps من التعليمات البرمجية المصدر. | نعم | لا |
| إنشاء البيانات الاصطناعية | يمكنك إنشاء بنية Maven لنشرها في Container Apps | نعم | لا |
| Dockerfile | يمكنك إنشاء Dockerfile يدويا والتحكم الكامل في النشر الخاص بك. | لا | نعم |
إشعار
تدعم عمليات نشر حزم البناء إصدارات Java Development Kit (JDK) 8، 11، 17، و21.
نوع التطبيقات
يتم تنفيذ أنواع التطبيقات المختلفة إما كتطبيق حاوية فردي أو كوظيفة تطبيقات الحاويات. استخدم الجدول التالي لمساعدتك في تحديد نوع التطبيق الأفضل للسيناريو الخاص بك.
لا يقصد بالأمثلة المدرجة في هذا الجدول أن تكون شاملة، ولكن لمساعدة أفضل فهم للهدف من أنواع التطبيقات المختلفة.
| النوع | الأمثلة | تنفيذ ك... |
|---|---|---|
| تطبيقات الويب ونقاط نهاية واجهة برمجة التطبيقات | Spring Boot و Quarkus و Apache Tomcat و Jetty | تطبيق حاوية فردي |
| تطبيقات وحدة التحكم والمهام المجدولة ومشغلات المهام والوظائف الدفعية | وظائف Spark، مهام ETL، وظيفة دفعة الربيع، وظيفة خط أنابيب Jenkins | مهمة تطبيقات الحاوية |
التصحيح
أثناء تتبع أخطاء تطبيق Java الخاص بك على Container Apps، تأكد من فحص عامل Java قيد المعالجة لرسائل تصحيح أخطاء دفق السجل ووحدة التحكم.
استكشاف الأخطاء وإصلاحها
ضع العناصر التالية في الاعتبار أثناء تطوير تطبيقات Java الخاصة بك:
الموارد الافتراضية: بشكل افتراضي، يحتوي التطبيق على نصف وحدة معالجة مركزية و1 غيغابايت متاحة.
العمليات عديمة الحالة: مع تحجيم تطبيق الحاوية الخاص بك داخل وخارج، يتم إنشاء عمليات جديدة وإيقاف تشغيلها. تأكد من التخطيط للمستقبل بحيث تكتب البيانات إلى التخزين المشترك مثل قواعد البيانات ومشاركات نظام الملفات. لا تتوقع أن تكون أي ملفات مكتوبة مباشرة إلى نظام ملفات الحاوية متاحة لأي حاوية أخرى.
المقياس إلى الصفر هو الافتراضي: إذا كنت بحاجة إلى التأكد من تشغيل مثيل واحد أو أكثر من تطبيقك باستمرار، فتأكد من تحديد قاعدة مقياس لتلبية احتياجاتك على أفضل وجه.
سلوك غير متوقع: إذا فشل تطبيق الحاوية في الإنشاء أو البدء أو التشغيل، فتحقق من تعيين مسار البيانات الاصطناعية بشكل صحيح في الحاوية.
مشكلات دعم Buildpack: إذا كانت Buildpack لا تدعم التبعيات أو إصدار Java الذي تحتاج إليه، فقم بإنشاء Dockerfile الخاص بك لنشر تطبيقك. يمكنك عرض نموذج Dockerfile للرجوع إليه.
إشارات SIGTERM وSIGINT: بشكل افتراضي، يتعامل
SIGTERMJVM معSIGINTإشارات ولا يمررها إلى التطبيق إلا إذا اعترضت هذه الإشارات وعالجتها في تطبيقك وفقا لذلك. تستخدم تطبيقات الحاوية كلا منSIGTERMوSIGINTللتحكم في العملية. إذا لم تلتقط هذه الإشارات، وإنهاء تطبيقك بشكل غير متوقع، فقد تفقد هذه الإشارات ما لم تستمر في تخزينها.الوصول إلى صور الحاوية: إذا كنت تستخدم توزيع البيانات الاصطناعية أو التعليمات البرمجية المصدر مع السجل الافتراضي، فلن يكون لديك حق الوصول المباشر إلى صور الحاوية.
مراقبة
تعمل جميع أدوات المراقبة القياسية مع تطبيق Java الخاص بك. أثناء إنشاء تطبيقات Java للتشغيل على Container Apps، ضع في اعتبارك العناصر التالية:
المقاييس: تعد مقاييس جهاز Java الظاهري (JVM) ضرورية لمراقبة صحة وأداء تطبيقات Java الخاصة بك. تشمل البيانات المجمعة رؤى حول استخدام الذاكرة، وجمع القمامة، وعدد الخيوط في جهاز JVM الخاص بك. يمكنك التحقق من المقاييس للمساعدة في ضمان صحة تطبيقاتك واستقرارها.
التسجيل: إرسال رسائل الخطأ والتطبيق إلى
stdoutأوstderrorحتى تظهر في دفق السجل. تجنب التسجيل مباشرة إلى نظام ملفات الحاوية كما هو شائع عند استخدام خدمات التسجيل الشائعة.تكوين مراقبة الأداء: نشر خدمات مراقبة الأداء كحاوية منفصلة في بيئة تطبيقات الحاوية الخاصة بك حتى تتمكن من الوصول مباشرة إلى التطبيق الخاص بك.
التشخيصات
تقدم Azure Container Apps أدوات تشخيص مضمنة حصريا لمطوري Java. يبسط هذا الدعم تصحيح أخطاء تطبيقات Java التي تعمل على Azure Container Apps واستكشاف الأخطاء وإصلاحها لتحسين الكفاءة وسهولة.
- مستوى المسجل الديناميكي: يسمح لك بالوصول إلى مستويات مختلفة من تفاصيل السجل والتحقق منها دون تعديلات على الكود أو إجبارك على إعادة تشغيل التطبيق. يمكنك عرض تعيين مستوى المسجل الديناميكي للرجوع إليه.
تغير الحجم
إذا كنت بحاجة إلى التأكد من وصول الطلبات من تطبيقات الواجهة الأمامية إلى نفس الخادم، أو تقسيم تطبيق الواجهة الأمامية بين حاويات متعددة، فتأكد من تمكين جلسات العمل الملصقة.
الأمان
ينهي وقت تشغيل تطبيقات الحاويات TLS لك داخل بيئة تطبيقات الحاويات الخاصة بك.
إدارة الذاكرة
للمساعدة في تحسين إدارة الذاكرة في تطبيق جافا الخاص بك، تأكد من تفعيل تركيب ذاكرة JVM في تطبيقك.
تقاس الذاكرة بأزواج الجيبيبايت (GiB) وأزواج النوى المركزية. يعرض الجدول التالي نطاق الموارد المتوفرة لتطبيق الحاوية.
| الحد | وحدة المعالجة المركزية | الذاكرة بالجيبيبايت (GiB) |
|---|---|---|
| الحد الأدنى | 0.25 | 0.5 |
| الحد الأقصى | 4 | 8 |
تتوفر الذاكرات الأساسية بزيادات 0.25 نواة، مع توفر الذاكرة بنسبة 2:1. على سبيل المثال، إذا كنت تحتاج إلى 1.25 نواة، لديك 2.5 جيجابايت من الذاكرة متاحة لتطبيق الحاوية الخاص بك.
إشعار
بالنسبة للتطبيقات التي تستخدم إصدارات JDK 9 والإصدارات الأقل، تأكد من تحديد إعدادات ذاكرة JVM المخصصة لمطابقة تخصيص الذاكرة في Azure Container Apps.
دعم مكونات Java
توفر Azure Container Apps الدعم لمكونات Java التالية كخدمات مدارة:
خادم يوريكا ل Spring: تسجيل الخدمة واكتشافها هما من المتطلبات الرئيسية للحفاظ على قائمة بمثيلات التطبيق المباشر. يستخدم تطبيقك هذه القائمة للتوجيه وتوازن التحميل للطلبات الواردة. يستغرق تكوين كل عميل وقتاً يدوياً، ويقدم إمكانية حدوث خطأ بشري. يبسط خادم يوريكا إدارة اكتشاف الخدمة من خلال العمل كسجل خدمة حيث يمكن للخدمات المصغرة تسجيل نفسها واكتشاف خدمات أخرى داخل النظام.
خادم التكوين ل Spring: يوفر خادم التكوين إدارة تكوين خارجية مركزية للأنظمة الموزعة. تم تصميم هذا المكون لمعالجة تحديات إدارة إعدادات التكوين عبر عدة خدمات دقيقة في بيئة سحابية أصلية.
بوابة الربيع: توفر بوابة الربيع طريقة فعالة وقوية لتوجيه وإدارة والتعامل مع طلبات واجهات برمجة التطبيقات كجزء من بنية الخدمات المصغرة. يعمل كبوابة API تقوم بتوجيه الطلبات الخارجية إلى خدمات مختلفة، مضيفة قدرات مثل التصفية وموازنة الأحمال.
المسؤول في Spring: يوفر المكون المدار من قبل Admin for Spring واجهة إدارية مصممة لتطبيقات الويب Spring Boot التي تحتوي على نقاط نهاية مشغل. يوفر المكون المدار التكامل والإدارة لتطبيق الحاوية الخاص بك من خلال السماح لك بربط تطبيق الحاوية الخاص بك بمكون Admin for Spring.