محتويات الدورة

AWS / المتوسط: عقود خدمات التطبيق / الدرس 10

الطوابير والأحداث ومنع التكرار

اختر الحدود غير المتزامنة بالتسليم والإقرار والترتيب والاستعادة وهوية العمل.

وقت القراءة التقريبي: 3 دقيقةتاريخ مراجعة المحتوى
في هذه الصفحة

أهداف الدرس

  • اشرح افتراضات ومسؤوليات ومفاضلات موضوع «الطوابير والأحداث ومنع التكرار».
  • فسر المثالين وميز النية المعلنة والدليل المتحقق.
  • شخص الإخفاقات وعلل القرارات المشروحة دون استخدام حساب AWS أواعتماد أوخدمة حقيقية.

تمييز الأمر والحدث والتسليم

يطلب الأمر عملا ويصف الحدث ما حدث والتسليم محاولة نقل؛ وقد تختلف الهويات. توفر SQS طوابير وSNS توزيعا وEventBridge توجيها بميزاتها. اختر النمط والعقد لا منتجات متطابقة. يفصل الغلاف هوية العمل الثابتة والمحاولة ولا يحوي بيانات أومعرفا فعليا أويرسل.

json غلاف رسالة عمل اصطناعي
{"schema":"booking-request.v1","operation_id":"lab-booking-17","delivery_attempt":"lab-attempt-b","payload":{"seats":2},"classification":"public-synthetic-teaching-data"}

تثبت هوية العمل عبر المحاولات والغلاف ليس عميلا فعليا أونشرا ولا يحمل اعتمادا.

قراءة الإقرار والمحاولة

لا يعني الاستلام إكمال العمل. يختلف ظهور SQS وحذفها وقد يعاد التسليم، وتسمح القياسية تكرارا دون ترتيب عام. تضيف FIFO نطاق ترتيب وإزالة موثقين لا كل أثر مرة واحدة. تضيف الأطراف محاولاتها؛ فاقرأ التكامل وحدد مالك الإعادة والاستعادة النهائية.

جعل هوية العملية دائمة

استخدم مفتاح العمل لا عشوائيا جديدا لكل محاولة، واربط المدخل والانتقال والنتيجة دائما بذريّة واحتفاظ. تمنع المحاكاة تكرارا متسلسلا وتفقد الحالة ولا تنسق المستهلكين. قد تلزم معاملة أوكتابة شرطية أو outbox للأثر. يفقد الحذف المبكر عملا ويترك اللاحق نافذة تكرار.

python نموذج تسليم مكرر غير مؤذ
deliveries = ["lab-a", "lab-b", "lab-a", "lab-b"]
completed = set()
for operation_id in deliveries:
    if operation_id not in completed:
        completed.add(operation_id)
print(len(deliveries), len(completed))
print("sequential in-memory model only")
الناتج المتوقع
4 2
sequential in-memory model only

تمثل أربعة تسليمات عمليتين؛ والمجموعة غير دائمة أوموزعة ولا تثبت ضمان AWS.

تقييد التراكم والرسائل المعطوبة

يمتص الطابور الاختلال ولا يخلق سعة؛ فقس العمر والعمق والزمن والمحاولة والاكتمال. لائم الظهور والاحتفاظ والدفعة والتزامن. DLQ حد استعادة لا إصلاح أوإذن فقد، وحدد التصحيح أوالإعادة أوالتسوية أوالانتهاء بدليل آمن. قد تعيد إعادة غير محدودة الحادث والآثار. اختبر تطور المخطط والمشوه اصطناعيا.

التحقق دون نشر أحداث حقيقية

راجع الإذن والسياسة والمفتاح والهوية والشبكة والمستهلك مستقلة؛ ولا يثبت النشر معالجة نهائية. حدد الملاحظة والاحتفاظ والملكية والتسوية. لا تنشئ الدورة طابورا أوموضوعا أوباصا أوقاعدة أورسالة أوإعادة؛ والمثال محلي. يتبع الفعلي النمط والمنطقة والتكامل، بلا وعد مرة واحدة أومجانية.

الأخطاء الشائعة وإصلاحها

يُعد النشر اكتمال العمل

لماذا يحدث؟
حل إقرار النقل محل النتيجة.
كيف تصلحه؟
تتبع المعالجة والتسوية مستقلة.
كيف تتجنب تكراره؟
حدد الحالة والملكية الكليتين.

يفترض أن FIFO تجعل الدفع مرة واحدة

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

تعيد إعادة الطابور الانقطاع

لماذا يحدث؟
أغفلت السعة والتكرار.
كيف تصلحه؟
حدد معدل الاستعادة المراجعة وسو النتائج.
كيف تتجنب تكراره؟
جرّب المعطوب والاستعادة بأمان.

اختبر فهمك

1. ينجح الخصم ويفشل حذف الرسالة. ماذا تسبب التالية؟

اعرض الحل المشروح

قد تخصم ثانية دون منع دائم أوتسوية. احفظ المفتاح وافحص النتيجة قبل الأثر؛ فالإقرار والدفع انتقالان منفصلان.

2. لماذا يفيد عمر الرسالة أكثر من العمق وحده؟

اعرض الحل المشروح

يكشف تأخر الموعد ولو قل العدد. اربطه بالمعدل والزمن والمحاولة والأولوية؛ فالاندفاع السليم والمعطوب العالق يحتاجان قرارين.

أهم ما تعلمته

  • يطلب الأمر عملا ويصف الحدث ما حدث والتسليم محاولة نقل؛ وقد تختلف الهويات.
  • استخدم مفتاح العمل لا عشوائيا جديدا لكل محاولة، واربط المدخل والانتقال والنتيجة دائما بذريّة واحتفاظ.
  • راجع الإذن والسياسة والمفتاح والهوية والشبكة والمستهلك مستقلة؛ ولا يثبت النشر معالجة نهائية.

المراجع الرسمية