مشاركة عبر


مقدمة إلى المجموعات الموثوق بها في خدمات Azure Service Fabric ذات الحالة

تمكنك المجموعات الموثوقة من كتابة تطبيقات سحابية عالية التوفر وقابلة للتطوير وزمن انتقال منخفض كما لو كنت تكتب تطبيقات كمبيوتر واحدة. توفر الفئات في مساحة الاسم Microsoft.ServiceFabric.Data.Collections مجموعة من المجموعات التي تجعل حالتك متوفرة بشكل كبير تلقائيا. يحتاج المطورون إلى البرمجة فقط إلى واجهات برمجة التطبيقات مجموعة موثوق بها والسماح للمجموعات الموثوقة بإدارة الحالة المنسوخة نسخا متماثلا والمحلية.

الفرق الرئيسي بين المجموعات الموثوقة والتقنيات الأخرى عالية التوفر (مثل Redis وخدمة Azure Table وخدمة Azure Queue) هو أن الحالة يتم الاحتفاظ بها محليا في مثيل الخدمة بينما يتم أيضا توفيرها بشكل كبير. وهذا يعني أن:

  • جميع القراءات محلية، ما يؤدي إلى زمن انتقال منخفض وقراءات عالية الإنتاجية.
  • تتحمل جميع عمليات الكتابة الحد الأدنى لعدد IOs للشبكة، مما يؤدي إلى زمن انتقال منخفض وكتابات عالية الإنتاجية.

صورة لتطور المجموعات.

يمكن اعتبار المجموعات الموثوق بها بمثابة التطور الطبيعي لفئات System.Collections : مجموعة جديدة من المجموعات المصممة للتطبيقات السحابية والتطبيقات متعددة الكمبيوتر دون زيادة التعقيد للمطور. على هذا النحو، المجموعات الموثوقة هي:

  • النسخ المتماثل: يتم نسخ تغييرات الحالة لقابلية الوصول العالية.
  • غير متزامن: واجهات برمجة التطبيقات غير متزامنة لضمان عدم حظر مؤشرات الترابط عند تكبد IO.
  • المعاملات: تستخدم واجهات برمجة التطبيقات تجريد المعاملات حتى تتمكن من إدارة مجموعات موثوقة متعددة داخل خدمة بسهولة.
  • مستمرة أو متقلبة: يمكن الاحتفاظ بالبيانات على القرص للمتانة ضد الانقطاعات واسعة النطاق (على سبيل المثال، انقطاع طاقة مركز البيانات). تدعم بعض المجموعات الموثوقة أيضا وضعا متقلبا (مع تحذيرات) حيث يتم الاحتفاظ بجميع البيانات في الذاكرة، مثل ذاكرة التخزين المؤقت المنسوخة نسخا متماثلا في الذاكرة.

توفر المجموعات الموثوقة ضمانات تناسق قوية خارج الصندوق لتسهيل التفكير في حالة التطبيق. يتم تحقيق الاتساق القوي من خلال ضمان انتهاء عمليات تثبيت المعاملة فقط بعد تسجيل المعاملة بأكملها على حصة الأغلبية من النسخ المتماثلة، بما في ذلك الأساسي. لتحقيق تناسق أضعف، يمكن للتطبيقات الإقرار بالعودة إلى العميل/الطالب قبل إرجاع التثبيت غير المتزامن.

تعد واجهات برمجة تطبيقات المجموعات الموثوقة تطورا لواجهات برمجة التطبيقات للمجموعات المتزامنة (الموجودة في مساحة الاسم System.Collections.Concurrent ):

  • غير متزامن: إرجاع مهمة لأنه، على عكس المجموعات المتزامنة، يتم نسخ العمليات واستمرارها.
  • لا توجد معلمات خارجية: يستخدم ConditionalValue<T> لإرجاع bool قيمة و بدلا من المعلمات. ConditionalValue<T> مثل Nullable<T> ولكن لا يتطلب T لتكون بنية.
  • المعاملات: يستخدم كائن معاملة لتمكين المستخدم من تجميع الإجراءات على مجموعات موثوقة متعددة في معاملة.

اليوم، يحتوي Microsoft.ServiceFabric.Data.Collections على ثلاث مجموعات:

  • القاموس الموثوق به: يمثل مجموعة من أزواج المفاتيح/القيم منسوخة نسخا متماثلا ومعاملات وغير متزامنة. على غرار ConcurrentDictionary، يمكن أن يكون كل من المفتاح والقيمة من أي نوع.
  • قائمة انتظار موثوقة: تمثل قائمة انتظار منسوخة منسوخة ومعاملات وغير متزامنة صارمة من البداية إلى الخارج (FIFO). على غرار ConcurrentQueue، يمكن أن تكون القيمة من أي نوع.
  • قائمة الانتظار المتزامنة الموثوق بها: تمثل قائمة انتظار ترتيب أفضل جهد منسوخة ومعاملات وغير متزامنة لمعدل نقل عال. على غرار ConcurrentQueue، يمكن أن تكون القيمة من أي نوع.

الخطوات التالية