فحوصات تصميم الخدمة
قبل متابعة هذه المقالة، تعرف على نموذج تطبيق Service Fabric ونموذج استضافة Service Fabric. توفر هذه المقالة نظرة عامة حول كيفية تعريف مسبار الحيوية والاستعداد باستخدام ملفات البيان.
فحص الحياة
بدءًا من الإصدار 7.1، يدعم Azure Service Fabric آلية فحص الحياة للتطبيقات الحاوية وغير المعبأة في حاويات. يساعد فحص الحياة على الإبلاغ عن حيوية حزمة التعليمات البرمجية، والتي سيتم إعادة تشغيلها إذا لم تستجب بسرعة.
فحص الاستعداد
بدءًا من 8.2، يتم دعم فحص الاستعداد أيضا. يتم استخدام فحص الاستعداد لتحديد ما إذا كانت حزمة التعليمات البرمجية جاهزة لقبول نسبة استخدام الشبكة. على سبيل المثال، إذا كانت الحاوية الخاصة بك تستغرق وقتًا طويلًا لمعالجة الطلب أو إذا كانت قائمة انتظار الطلبات ممتلئة، فلن تتمكن حزمة التعليمات البرمجية الخاصة بك من قبول نسبة استخدام الشبكة بعد الآن، وبالتالي ستتم إزالة نقاط النهاية للوصول إلى حزمة التعليمات البرمجية.
سلوك فحص الاستعداد هو:
- بدء تشغيل مثيل حزمة الحاوية/التعليمات البرمجية
- يتم نشر نقاط النهاية على الفور
- فحص الاستعداد يبدأ العمل
- يصل فحص الاستعداد في النهاية إلى عتبة الفشل، ويتم إزالة نقطة النهاية مما يجعله غير متاح
- يصبح المثيل جاهزا في النهاية
- يلاحظ فحص الاستعداد أن المثيل جاهز وينشر نقطة النهاية مرة أخرى
- يتم توجيه الطلبات مرة أخرى وتنجح لأنها كانت جاهزة لخدمة الطلبات
ملاحظة
بالنسبة لفحص الجاهزية، لا يتم إعادة تشغيل حزمة التعليمات البرمجية، فقط نقاط النهاية غير منشورة حتى لا تتأثر النسخة المتماثلة/القسم التي تم تعيينها.
الدلالات
يمكنك تحديد فحص واحد فقط للحيوية والاستعداد لكل حزمة تعليمات برمجية ويمكنك التحكم في سلوكها باستخدام الحقول التالية:
typeيستخدم لتحديد ما إذا كان نوع الفحص هو الحياة أو الاستعداد. القيم المدعومة هي الحياة أو الاستعدادinitialDelaySecondsالتأخير الأولي في ثوان لبدء تنفيذ المسبار بعد بدء تشغيل الحاوية. القيمة المدعومة هي int. الافتراضي هو 0 والحد الأدنى هو 0.timeoutSecondsالفترة بالثواني التي نعتبر بعدها الفحص فاشلًا، إذا لم ينته بنجاح. القيمة المدعومة هي int. الافتراضي هو 1 والحد الأدنى هو 1.periodSecondsالفترة بالثواني لتحديد تردد الفحص. القيمة المدعومة هي int. الافتراضي هو 10 والحد الأدنى هو 1.failureThresholdعندما نصل إلى هذه القيمة، ستتم إعادة تشغيل الحاوية. القيمة المدعومة هي int. الافتراضي هو 3 والحد الأدنى هو 1.successThresholdعند الفشل، لكي يعتبر الفحص ناجحًا، يجب أن يعمل بنجاح لهذه القيمة. القيمة المدعومة هي int. الافتراضي هو 1 والحد الأدنى هو 1.
يمكن أن يكون هناك، على الأكثر، فحص واحد إلى حاوية واحدة في أي لحظة. إذا لم ينته الفحص في الوقت المحدد في timeoutSeconds، فانتظر واحسب الوقت نحو failureThreshold.
بالإضافة إلى ذلك، سيقوم Service Fabric برفع تقارير سلامة الفحص التالي على DeployedServicePackage:
OKينجح المسبار للقيمة المحددة في successThreshold.Error:الفحص فشل الفحص == failureThreshold، قبل إعادة تشغيل الحاوية.Warning:- فشل التحقيق وfailureCount<failureThreshold. يبقى تقرير الحماية هذا حتى يصل failureCount إلى القيمة المحددة في failureThreshold أو successThreshold.
- على النجاح بعد الفشل، يبقى التحذير ولكن مع النجاحات المتتالية المحدثة.
تحديد فحص
يمكنك تحديد فحص في ملف ApplicationManifest.xml ضمن ServiceManifestImport.
يمكن أن يكون الفحص لأي مما يلي:
- HTTP
- بروتوكول تحكم الإرسال
- Exec
اختبار HTTP
بالنسبة لفحص HTTP، سيرسل Service Fabric طلب HTTP إلى المنفذ والمسار اللذين تحددهما. يشير رمز الإرجاع الأكبر من أو يساوي 200 وأقل من 400 إلى النجاح.
فيما يلي مثال على كيفية تحديد فحص HTTP Liveness:
<ServiceManifestImport>
<ServiceManifestRef ServiceManifestName="Stateless1Pkg" ServiceManifestVersion="1.0.0" />
<ConfigOverrides />
<Policies>
<CodePackagePolicy CodePackageRef="Code">
<Probes>
<Probe Type="Liveness" FailureThreshold="5" SuccessThreshold="2" InitialDelaySeconds="10" PeriodSeconds="30" TimeoutSeconds="20">
<HttpGet Path="/" Port="8081" Scheme="http">
<HttpHeader Name="Foo" Value="Val"/>
<HttpHeader Name="Bar" Value="val1"/>
</HttpGet>
</Probe>
</Probes>
</CodePackagePolicy>
</Policies>
</ServiceManifestImport>
يحتوي فحص HTTP على خصائص إضافية يمكنك تعيينها:
pathالفحص المطلوب استخدامه في طلب HTTP.portالمنفذ المطلوب استخدامه للتحقيقات. هذه الخاصية إلزامية. النطاق هو 1 إلى 65535.scheme:المخطط الذي يجب استخدامه للاتصال بحزمة التعليمات البرمجية. إذا تم تعيين هذه الخاصية إلى HTTPS، تخطي التحقق من الشهادة. الإعداد الافتراضي هو HTTP.httpHeader:الرؤوس المراد تعيينها في الطلب. يمكنك تحديد رؤوس متعددة.host:عنوان IP للمضيف للاتصال به.
اختبار TCP
بالنسبة لفحص TCP، سيحاول Service Fabric فتح مقبس توصيل على الحاوية باستخدام المنفذ المحدد. إذا كان بإمكانه إنشاء اتصال، فإن الفحص يعتبر ناجحًا. فيما يلي مثال على كيفية تحديد مسبار يستخدم مقبس TCP:
<ServiceManifestImport>
<ServiceManifestRef ServiceManifestName="Stateless1Pkg" ServiceManifestVersion="1.0.0" />
<ConfigOverrides />
<Policies>
<CodePackagePolicy CodePackageRef="Code">
<Probes>
<Probe Type="Liveness" FailureThreshold="5" SuccessThreshold="2" InitialDelaySeconds="10" PeriodSeconds="30" TimeoutSeconds="20">
<TcpSocket Port="8081"/>
</Probe>
</Probes>
</CodePackagePolicy>
</Policies>
</ServiceManifestImport>
فحص Exec
سيصدر هذا الفحص أمرًا exec في الحاوية وينتظر انتهاء الأمر.
ملاحظة
يأخذ الأمر Exec سلسلة مفصولة بفواصل. سيعمل الأمر الموجود في المثال التالي مع حاوية Linux. إذا كنت تحاول فحص حاوية Windows، فاستخدم cmd.
<ServiceManifestImport>
<ServiceManifestRef ServiceManifestName="Stateless1Pkg" ServiceManifestVersion="1.0.0" />
<ConfigOverrides />
<Policies>
<CodePackagePolicy CodePackageRef="Code">
<Probes>
<Probe Type="Liveness" FailureThreshold="5" SuccessThreshold="2" InitialDelaySeconds="10" PeriodSeconds="30" TimeoutSeconds="20">
<Exec>
<Command>ping,-c,2,localhost</Command>
</Exec>
</Probe>
</Probes>
</CodePackagePolicy>
</Policies>
</ServiceManifestImport>
الخطوات التالية
راجع المقالة التالية للحصول على معلومات ذات صلة: