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

Apache Kafka / المتوسط: العقود والأعطال وقابلية الرصد / الدرس 9

النسخ وISR وإتاحة الكتابة

تقييم الكتابات المقر بها مقابل صحة النسخ وتوضيح موازنة المتانة والإتاحة.

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

أهداف الدرس

  • شرح القادة والتوابع ومجموعة النسخ المتزامنة.
  • تحليل acks=all مع min.insync.replicas.

النسخ يحمي نموذج أعطال محدداً

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

الحد الأدنى يرفض بعض الكتابات المتدهورة

مع acks=all يمكن أن يشترط min.insync.replicas عدداً أدنى من النسخ المتزامنة لنجاح الكتابة. يسمح عامل نسخ ثلاثة وحد أدنى اثنان بالكتابة مع نسختين مناسبتين، ويرفضها عند بقاء واحدة وفق القواعد المطبقة. إنها موازنة إتاحة مقصودة للحفاظ على شرط أقوى للنسخ المقر بها، وليست ضماناً لكل أعطال الزمن والتخزين. يغير خفض الحد أثناء الحادث العقد ولا ينبغي إخفاؤه بوصفه ضبطاً روتينياً. شخّص سبب تأخر النسخ قبل تقرير قبول التشغيل المتدهور.

نمذجة الحد دون ادعاء اختبار عنقود

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

python حد ISR أدنى محلي
minimum = 2
def meets_minimum(isr_count):
    return isr_count >= minimum
assert meets_minimum(2)
assert not meets_minimum(1)
print(meets_minimum(2), meets_minimum(1))
الناتج المتوقع
True False

يفحص النموذج عدداً فقط ولا يحاكي توقيت الإلحاق أو الإقرار.

ربط إعداد المنتج بإعداد الموضوع

يسمي الجزء min.insync.replicas=2 اختياراً للموضوع ضمن تصميم تدريبي معلن بثلاث نسخ. لا ينشئ الموضوع ولا يوزع النسخ ولا يتحقق من ISR الفعلية. للمنتج ذي acks=1 عقد إقرار مختلف؛ لذلك لا يغني حد الموضوع عن مراجعة المنتج. ميز أيضاً الانتخاب غير النظيف للقائد عن الانتقال الطبيعي بين نسخ مناسبة. قد يعيد اختيار نسخة متأخرة الخدمة مع خطر فقد بيانات مقر بها؛ ويجب مراجعة الأهلية والميزات وفق الإصدار والسياسات الفعلية.

properties خاصية موضوع توضيحية
min.insync.replicas=2

يفترض ثلاث نسخ وacks=all في موضع آخر؛ ولا ينشئ السطر وحده ضمان متانة.

قراءة أدلة النسخ عبر الزمن

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

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

اعتبار ثلاث نسخ مهيأة ثلاث نسخ سليمة.

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

خفض الحد الأدنى دون مراجعة لعلاج حادث.

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

فقد جميع النسخ بعطل رف واحد.

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

اختبر فهمك

1. مع ثلاث نسخ وacks=all وحد اثنين، هل يفترض نجاح الكتابة بنسخة متزامنة واحدة؟

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

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

2. لماذا لا يكفي نصاب متحكمات سليم لإثبات قراءة كل موضوع؟

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

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

أهم ما تعلمته

  • يعبر عامل النسخ عن المقصود، وتعبر ISR عن سياق الأهلية والصحة الحالي.
  • ترفض شروط الكتابة الأقوى بعض العمليات المتدهورة عمداً.

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