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

قابلية الرصد / المتقدم: الانحياز والثقة وهندسة الأدلة / الدرس 14

السياق غير المتزامن وعلاقات الدفعات

نمذج أدلة المنتج والطابور والمستهلك والدفعة، دون افتراض أن شجرة أبوة تشبه HTTP تلتقط كل علاقة غير متزامنة.

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

أهداف الدرس

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

للعمل غير المتزامن نقاط اكتمال متعددة

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

استخدم علاقات تطابق العملية

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

yaml سجل تعليمي لعلاقات الدفعة
operation: parcel-batch-consume
parent_context: explicitly-chosen-by-supported-instrumentation
linked_input_contexts: [synthetic-producer-a, synthetic-producer-b]
separate_measures: [queue-residence, processing-duration, update-freshness]
claim_limit: links-express-relationship-not-exact-wall-clock-causation

السياقات المسماة تسميات افتراضية، وليست سياقات مقاطع مسلسلة صالحة. تستخدم الروابط الفعلية API التتبع واتفاقيات الرسائل المدعومة.

افصل زمن الطابور عن زمن المعالجة

تستخدم العينة المحلية ساعة افتراضية واحدة لمقارنة رسالتين. تنتظر الأولى ثماني ثوانٍ وتعالج في اثنتين، وتنتظر الثانية ثانية وتعالج في خمس. توحي رؤية مدة المعالجة وحدها بأن الثانية أبطأ، مع أن بقائها الإجمالي في النموذج أقصر. قد تتضمن أنظمة الأحداث الحقيقية انحراف ساعات وإعادة تسليم وطوابع ناقصة. أظهر القيود، ولا تحول زمناً سالباً للطابور إلى رقم مطمئن. عرّف علاقة كل محاولة بالعملية النهائية التي يراها المستخدم، حتى لا تضخم الإعادات عدد العمليات المستقلة.

python عينة محلية لتوقيت غير متزامن
messages = [("a", 0, 8, 10), ("b", 0, 1, 6)]
for name, enqueued, started, finished in messages:
    print(name, "queue", started - enqueued, "processing", finished - started, "total", finished - enqueued)
الناتج المتوقع
a queue 8 processing 2 total 10
b queue 1 processing 5 total 6

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

انقل السياق عمداً عبر المهام

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

ميّز المحاولات والتكرار والأدلة المحفوظة

قد تنتج رسالة أُعيد تسليمها محاولة معالجة جديدة للحدث المنطقي نفسه. سجل معنى المحاولة دون كشف معرفات عملاء خام، ودون افتراض أن محاولة جديدة تعني مستخدماً راضياً جديداً. قد تحفظ العينات وسياسة الاحتفاظ بعض المحاولات وتغفل غيرها، فلا يثبت بحث التتبع سلوك المعالجة مرة واحدة تماماً. تحتاج قابلية العمل للإعادة دون تكرار الأثر ومطابقة البيانات إلى عقود متحققة مستقلة. ينفذ الدرس حساب توقيت افتراضياً ونموذج علاقات تحريرياً فقط؛ ولا يختبر وسيطاً أو عاملاً أو تكامل تشغيل غير متزامن أو API تتبع أو آلية تسليم.

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

يُستخدم مقطع الإدراج لقياس الحداثة الكاملة.

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

تشترك مهام متزامنة في هوية تتبع خاطئة.

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

تخترع دفعة عدة حقول للأب.

لماذا يحدث؟
فُرض نموذج شجرة على علاقة لا تناسبه.
كيف تصلحه؟
استخدم معنى الأب والروابط المدعوم.
كيف تتجنب تكراره؟
راجع اتفاقيات الرسائل وافتراضات النسخ.

اختبر فهمك

1. يعالج مستهلك دفعة من خمسة طلبات منتجين. هل يجب اختيار طلب واحد ومحو علاقة الباقين؟

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

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

2. هل يثبت تتبع يبدو مكتملاً أن رسالة عولجت مرة واحدة تماماً؟

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

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

أهم ما تعلمته

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

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