ar ar ar ar ar ar ar ar ar ar ar ar en ar ar ar ar ar ar en ar ar fa ar ar ar ar ar ar ar ar ar ar ar ar ar en ar ar ar ar ar fa ar ar ar ar ar ar ar ar fr ar ar ar ar ar ar ar ar ar ar ar ar ar ar ar ar ar ar ar ar ar ar ar ar ar ar ar ar ar ar ar ar ar ar ar ar ar ar ar ur ar ar ar ar ar ar ar ar en ar ar ur ar ar ar ar ar ar ar ar en
تقدم هذه المقالة نظرة عامة على دورة حياة النسخ المتماثلة للخدمات ذات الحالة ومثيلات الخدمات الغير متماثلة.
مثيل خدمة غير متماثل هو نسخة من منطق الخدمة الذي يُشغل على إحدى عقد نظام المجموعة. يتم تحديد مثيل داخل القسم بشكل فريد من خلال ⁧⁩ معرف المثيل ⁧⁩ الخاص به. يتم تشكيل دورة حياة مثيل في الرسم التخطيطي التالي:
بعد أن يحدد Azure Resource Manager موضعًا للمثيل، فإنه يدخل في حالة دورة الحياة هذه. يُشغل المثيل على العقدة. يتم بدء مضيف التطبيق، ويتم إنشاء المثيل ثم فتحه. بعد انتهاء بدء التشغيل، تنتقل الحالة إلى حالة الاستعداد.
إذا تعطل مضيف التطبيق أو عقدة هذا المثيل، فإنه ينتقل إلى الحالة المدرجة.
في الحالة النشطة، يكون المثيل جاري التشغيل على العقدة. إذا كان هذا المثيل خدمة موثوقة، فقد تم استدعاء ⁧⁩RunAsync⁧⁩.
في حالة الإغلاق، يقوم نسيج خدمة Azure بإيقاف تشغيل المثيل على هذه العقدة. قد يكون إيقاف التشغيل لعديد من الأسباب - على سبيل المثال، ترقية التطبيق أو موازنة التحميل أو حذف الخدمة. بعد انتهاء إيقاف التشغيل، ينتقل إلى الحالة المندرجة.
في الحالة المندرجة، لم يعد المثيل جاري التشغيل على العقدة. في هذه المرحلة، يحتفظ نسيج الخدمة ببيانات التعريف حول هذا المثيل، والتي تُحذف في النهاية أيضًا.
من الممكن الانتقال من أي حالة إلى الحالة المدرجة باستخدام الخيار ⁧⁩ForceRemove⁧⁩ على ⁧Remove-ServiceFabricReplica⁩.
نسخ متماثلة من الخدمات ذات الحالة الخاصة
نسخة متماثلة من خدمة خاصة هي نسخة من منطق الخدمة جارية التشغيل على إحدى عقد نظام المجموعة. بالإضافة إلى ذلك، تحتفظ النسخة المتماثلة بنسخة من حالة تلك الخدمة. يصف مفهومان متصلان دورة حياة وسلوك النسخ المتماثلة ذات الحالة الخاصة:
دورة حياة النسخة المتماثلة
تُبين المناقشة التالية الخدمات الحكومية الخاصة. بالنسبة إلى الخدمات المتغيرة (أو الموجودة في الذاكرة)، تكون الحالات الغير نشطة والمندرجة متساوية.
النسخة المتماثلة InBuild هو نسخ متماثل أُنشئ أو أُعد للانضمام إلى مجموعة النسخة المتماثلة. اعتمادًا على دور النسخة المتماثلة، لدى الوسيط المعرف دلالات مختلفة.
إذا تعطل مضيف التطبيق أو العقدة الخاصة بالنسخة المتماثلة InBuild، فإنه ينتقل إلى الحالة الغير نشطة.
⁧⁩ النُّسَخ المتماثلة الأساسية في InBuild ⁧⁩: النسخة الأساسية في InBuild هي النُّسَخ المتماثلة الأولى للقسم. عادة ما تحدث هذه النسخة المتماثلة عند إنشاء القسم. تنشأ النُّسَخ المتماثلة الأساسية في InBuild أيضًا عند إعادة تشغيل جميع النُّسَخ المتماثلة للقسم أو إدراجها.
⁧⁩النسخ المتماثلة InBuild IdleSecondary InBuild⁧⁩: هذه إما نسخ متماثلة جديدة أُنشأت بواسطة Azure Resource Manager المجموعة، أو نسخ متماثلة موجودة تعطلت وتحتاج إلى إضافتها مرة أخرى إلى المجموعة. يتم إنشاء هذه النسخ المتماثلة أو بناؤها من قبل الأساسي قبل أن يتمكنوا من الانضمام إلى مجموعة النسخ المتماثلة على أنها نشطة ثانويًا والمشاركة في إقرار الحصة للعمليات.
⁧⁩النسخ المتماثلة من ActiveSecondary InBuild ⁧⁩: تُلاحظ هذه الحالة في بعض الاستعلامات. إنه تحسين حيث لا تتغير مجموعة النسخة المتماثلة، ولكن يجب إنشاء نسخة متماثلة. تتبع النسخة المتماثلة نفسها انتقالات الجهاز ذات الحالة العادية (كما هو موضح في القسم الخاص بأدوار النسخة المتماثلة).
النسخة المتماثلة الجاهزة هي نسخة طبق الأصل تشارك في النسخ المتماثل وإقرار الحصة للعمليات. تنطبق الحالة الجاهزة على النسخ المتماثلة الثانوية الأولية والنشطة.
في حالة تعطل مضيف التطبيق أو عقدة نسخة متماثلة جاهزة، ينتقل إلى الحالة الغير نشطة.
تدخل نسخة متماثلة حالة الإغلاق في السيناريوهات التالية:
⁧⁩إيقاف تشغيل رمز النسخة المتماثلة⁧⁩: قد يحتاج نسيج الخدمة إلى إيقاف تشغيل رمز التشغيل لنسخة متماثلة. قد يكون هذا الإغلاق لأسباب عديدة. على سبيل المثال، يمكن أن يحدث بسبب تطبيق أو نسيج أو ترقية بنية تحتية، أو بسبب خطأ أُبلغ عنه بواسطة النسخة المتماثلة. عند انتهاء إغلاق النسخة المتماثلة، تنتقل النسخة المتماثلة إلى الحالة الغير نشطة. لا يتم تنظيف الحالة المستمرة المقترنة بهذه النسخة المتماثلة المخزنة على القرص.
إزالة ⁧⁩النسخة المتماثلة من نظام المجموعة⁧⁩: قد يحتاج نسيج الخدمة إلى إزالة الحالة المستمرة وإيقاف تشغيل التعليمة البرمجية جارية التشغيل لنسخة متماثلة. قد يكون هذا الإغلاق لأسباب عديدة، على سبيل المثال، موازنة التحميل.
في الحالة المندرجة، لم يعد المثيل جاري التشغيل على العقدة. كما لا توجد حالة متبقية على العقدة. في هذه المرحلة، يحتفظ نسيج الخدمة ببيانات التعريف حول هذا المثيل، والتي تُحذف في النهاية أيضًا.
في الحالة غير النشطة، لا يتم تشغيل رمز النسخة المتماثلة، ولكن الحالة المستمرة لتلك النسخة المتماثلة موجودة على تلك العقدة. يمكن أن تكون النسخة المتماثلة معطلة لأسباب عديدة - على سبيل المثال، العقدة معطلة أو تعطل في التعليمات البرمجية للنسخة المتماثلة أو ترقية تطبيق أو أخطاء في النسخة المتماثلة.
يتم فتح نسخة متماثلة غير نشطة بواسطة نسيج الخدمة كما هو مطلوب، على سبيل المثال، عند انتهاء الترقية على العقدة.
دور النسخة المتماثلة ليس له علاقة بالحالة غير النشطة.
تدخل النسخة المتماثلة غير النشطة في حالة الفتح عندما يحتاج نسيج الخدمة إلى إعادة النسخة المتماثلة احتياطيًا مرة أخرى. على سبيل المثال، قد تكون هذه الحالة بعد انتهاء ترقية الرمز للتطبيق على عقدة.
في حالة تعطل مضيف التطبيق أو عقدة نسخة متماثلة مفتوحة، فإنها تنتقل إلى الحالة غير النشطة.
دور النسخة المتماثلة ليس له علاقة بحالة الافتتاح.
النسخة المتماثلة الاحتياطية هي نسخة طبق الأصل من خدمة مستمرة تعطلت ثم تم فتحها. قد تُستخدم هذه النسخة المتماثلة بواسطة نسيج الخدمة إذا كانت بحاجة إلى إضافة نسخة متماثلة أخرى إلى مجموعة النسخ المتماثلة (لأن النسخة المتماثلة تحتوي بالفعل على جزء من الحالة وعملية الإنشاء أسرع). بعد انتهاء صلاحية StandByReplicaKeepDuration، يتم تجاهل النسخة المتماثلة الاحتياطية.
في حالة تعطل مضيف التطبيق أو عقدة نسخة متماثلة احتياطية، ينتقل إلى الحالة الغير نشطة.
دور النسخة المتماثلة ليس له علاقة بحالة الاستعداد.
تعتبر أي نسخة متماثلة ليست غير نشطة أو مندرجة ⁧⁩لأعلى⁧⁩.
من الممكن الانتقال من أي حالة إلى الحالة المندرجة باستخدام خيار ⁧⁩ForceRemove⁧⁩ على ⁧Remove-ServiceFabricReplica⁩.
يحدد دور النسخة المتماثلة وظيفتها في مجموعة النسخ المتماثلة:
⁧⁩أساسي (P )⁧⁩: هناك عنصر أساسي واحد في مجموعة النسخة المتماثلة مسؤول عن تنفيذ عمليات القراءة والكتابة.
⁧⁩ ActiveSecondary (S )⁧⁩: هذه نسخ متماثلة تتلقى تحديثات الحالة من الأساسي، وتطبقها، ثم تعيد إرسال الإقرارات. هناك عدة ثانويات نشطة في مجموعة النسخة المتماثلة. يحدد عدد هذه الثانويات النشطة عدد الأخطاء التي يمكن للخدمة معالجتها.
⁧⁩IdleSecondary (I)⁧⁩: تُبنى هذه النسخ المتماثلة من قِبل الأساسي. فهم يستقبلون الحالة من المرحلة الابتدائية قبل الترقية إلى المرحلة الثانوية النشطة.
⁧⁩لا شيء (N )⁧⁩: لا تتحمل هذه النسخ المتماثلة أي مسؤولية في مجموعة النسخة المتماثلة.
⁧⁩غير معروف (U)⁧⁩: هذا هو الدور الأولي للنسخة المتماثلة قبل أن تتلقى أي استدعاء لواجهة برمجة تطبيقات ⁧⁩ChangeRole⁧⁩ من نسيج الخدمة.
يُبين الرسم التخطيطي التالي انتقالات دور النسخة المتماثلة وبعض السيناريوهات النموذجية التي يمكن أن تحدث فيها:
U -⁧>⁩ P: إنشاء نسخة متماثلة أساسية جديدة.
U -⁧>⁩ I: إنشاء نسخة متماثلة خاملة جديدة.
U -⁧>⁩ N: حذف نسخة متماثلة احتياطية.
I -⁧>⁩ S: ترقية الثانوية العاطلة إلى الثانوية النشطة بحيث تساهم قراراتها في اكتمال الحصة.
I -⁧>⁩ P: ترقية الثانوية الخاملة إلى الابتدائية. يمكن أن يحدث هذا في ظل عمليات إعادة تشكيل خاصة عندما تكون الثانوية الخاملة هي المرشح الصحيح لتكون أساسية.
I -⁧>⁩ N: حذف النسخة المتماثلة الثانوية الخاملة.
S -⁧>⁩ P: ترقية الثانوية النشطة إلى الابتدائية. يمكن أن يكون هذا بسبب تجاوز فشل الحركة الأساسية أو الأساسية التي بدأها Cluster Azure Resource Manager. على سبيل المثال، قد يكون ذلك استجابة لترقية التطبيق أو موازنة الحِمل.
S -⁧>⁩ N: حذف النسخة المتماثلة الثانوية النشطة.
P -⁧>⁩ S: خفض رتبة النسخة المتماثلة الأساسية. يمكن أن يكون هذا بسبب حركة أساسية بدأها Cluster Azure Resource Manager. على سبيل المثال، قد يكون ذلك استجابة لترقية التطبيق أو موازنة الحِمل.
P -⁧>⁩ N: حذف النسخة المتماثلة الأساسية.
تخفي نماذج البرمجة عالية المستوى، مثل الجهات الفاعلة الموثوقة ⁧⁩والخدمات الموثوقة⁧⁩، مفهوم أدوار النسخة المتماثلة عن ⁧⁩المطو⁧⁩. في الجهات الفاعلة، فإن فكرة الدور غير ضرورية. في الخدمات، يتم تبسيطها إلى حد كبير لمعظم السيناريوهات.