آليات الفحص الصحي
1) لماذا
الفحوصات الصحية هي الحاجز الأول ضد الإخفاقات المتتالية: فهي تزيل العقد بشكل صحيح من الدوران، وتمنع العواصف المعاودة، وتبسط التدهور وتسرع التعافي، وتحافظ على SLO وتقلل من MTTR.
2) الأنواع الأساسية من الفحوصات
الحيوية - العملية «حية» (لا مأزق/تسرب/ذعر). خطأ → إعادة تشغيل مثال.
الاستعداد - الخدمة قادرة على خدمة حركة المرور باستخدام SLOs المستهدفة (يتم رفع المسابح، ويتم تسخين المخبأ، والموارد المعتمدة طبيعية). → يستبعد الخطأ من الموازنة ولكن لا يستأنف.
بدء التشغيل - الخدمة جاهزة للذهاب إلى الحيوية/الاستعداد (أحذية طويلة، هجرات، إحماء). يحمي من إعادة التشغيل المبكرة.
الصحة العميقة (خاصة بالمجال): الثوابت التجارية (السعر ينتقل من طرف إلى طرف، والإيداع مأذون به من قبل PSP النشط). يستخدم لإشارات التحلل، ولكن ليس لإعادة التشغيل الفوري.
خارجي/اصطناعي: أصوات نشطة في الخارج (مسار واجهة برمجة التطبيقات، النص الأمامي، PSP/KYC نقطة النهاية) - قياس توافر المستخدم.
3) تصميم العينة: القواعد العامة
1. الرخص: لا تذهب إلى التبعيات الخارجية ؛ تحقق من حلقة الحدث، كومة/FD، هيئة الرقابة.
2. الاستعداد من قبل SLO: نتحقق من الموارد المحلية المطلوبة للصيانة (مجمعات قواعد البيانات، ذاكرة التخزين المؤقت الدافئة، الحدود). التبعيات الخارجية - من خلال «هل يمكن أن تخدم ؟» إشارات.
3. ميزانية الكمون: لكل عينة ميزانيتها الخاصة (على سبيل المثال، ≤100-200 مللي ثانية) ؛ إذا تم تجاوزه - «متدهور»، ولكن ليس 5xx على الحيوية.
4. Backoff & Jitter: فترات عينة 5-15 ثانية، مهلة 1-2 ثانية، مع تأخير أسي في الأخطاء لتجنب العواصف المتزامنة.
5. Hysteresis: N success/error responses for status change (example «successThreshold = 2»، «failureThreshold = 3»).
6. الإصدار: نقاط النهاية '/healthz 'و '/readyz' و '/startupz 'مستقرة ؛ الفحوصات العميقة تحت '/الصحة/... مع الشيكات المسماة
7. لا يوجد سر و PII: الإجابات ليست سوى حالات ورموز قصيرة.
8. القابلية للتفسير: JSON مع قائمة من الفحوصات الفرعية: "{"الحالة ": "متدهور "، "شيكات ": [{"الاسم ":" db"،" ok": صحيح،" latencyMs': 18}، {" الاسم":" psp. eu, "ok": false, "reason": "timeout'}}}.
4) أمثلة على الفحوصات العميقة حسب الطبقة
4. 1 DB/Cache/Storage
DB: معاملة قصيرة «SELECT 1» لقراءة نسخة طبق الأصل وفحص مجمع ؛ عتبات الكمون/التكرار/التأخر.
ذاكرة التخزين المؤقت: مفتاح اختبار «GEt'/» SEt' + حارس نسبة الضرب (تحذير → منخفض).
تخزين الكائن: رأس كائن موجود (بدون تنزيل).
4. 2 قوائم انتظار/بث
الوسيط: ping-topic publish + consume in local distribution; عتبات تأخر المستهلك.
DLQ: لا ارتفاع في رسائل الحروف الميتة لكل نافذة.
4. 3 موردين خارجيين (PSP/KYC/AML)
PSP: auth-probe خفيف الوزن (غير نقدي)، التحقق من العقد/الشهادة/الحصص ؛ إذا لم تكن هناك عينات آمنة، فإننا نستخدم مقاييس بالوكالة (نجاح التراخيص في 5-10 دقائق من قبل البنوك/توقعات البيئة العالمية).
KYC/AML: طوابير الصحة - API و SLA ؛ في حالة التدهور - التحول إلى تيار/مقدم بديل.
4. 4 واجهة برمجة التطبيقات/الجبهة
المواد التركيبية: مسار المعاملات (تسجيل الدخول → بدء الإيداع → الرهان «في الرمال») في EU/LATAM/APAC.
إشارة RUM: نسبة أخطاء JS/HTTP و LCP/TTFB - تؤدي إلى «الخارج».
5) تكامل المنصة
5. 1 كوبرنيت/سحابة
«StartupProbe» يحمي أحذية التمهيد (الهجرات/إحماء ذاكرة التخزين المؤقت).
'livenessProbe' هو الحد الأدنى ؛ يأخذ «readinessProbe» في الاعتبار قوائم الانتظار/المخبأ/المحلية.
Параметры: «ثوانٍ التأخير الأولية»، «ثوانٍ الفترة»، «ثوانٍ مهلة»، «عتبة الفشل»، «عتبة النجاح».
PodDistructionBudget و maxUnavailable بالنظر إلى الاستعداد.
HPA/KEDA: تصنيف قائمة الانتظار/SLI ؛ الاستعداد يؤثر على التوجيه.
5. 2 موازين/بوابات/شبكة
التوجيه الصحي على مستوى L7 (HTTP 200/429/503 الدلالات).
الكشف الخارجي (المبعوث/الشبكة) - الناتج من المجمع حسب معدل الخطأ/نسبة الكمون المئوية.
قاطع الدائرة: حدود للطلبات/الاتصالات المتزامنة مع التبعية، والتكامل مع الإشارات الصحية.
5. 3 القياس الذاتي والتدهور
الاستعداد = إزالة حركة المرور → الخاطئة، لكن الكبسولة حية (يمكن أن تسخن).
تتميز → التحلل العميق (PSP down) بأعلام للوضع الرشيق (على سبيل المثال، إخفاء طرق الدفع مؤقتًا، وتمكين غرفة الانتظار).
6) سياسات المهلة والتراجع
المهلة <ميزانية SLO: «المهلة = دقيقة (⅓ p99، 1-2s)» للتبعيات المتزامنة.
الفراغ: إلزامي لإعادة الطباعة ؛ استخدام مفاتيح الخصوصية.
التراجع الأسي + النبض: يمنع تأثيرات العمود المتزامن.
ميزانيات إعادة الدفع: الحدود القصوى لكل طلب/مستأجر، الحماية من «عواصف إعادة المحاولة».
7) إشارات الحالة والتنبيه
الأخضر/الأصفر/الأحمر: ملخص الحالات على لوحة القيادة الخدمية.
تنبيهات معدل الحرق بواسطة SLO: سريع (1 ساعة) وبطيء (6-24 ساعة).
تلميحات الارتباط: Release/Feature Flag/Plan Activity Notes.
الإجراءات التلقائية: مع التحقق العميق «الأحمر» - قم بتشغيل الاحتياطي الخاص بالمزود، وقم بزيادة أخذ عينات من المسارات.
8) استراتيجيات ذكية للألعاب
الاستعداد للدفع: يأخذ استعداد خدمة المراهنة في الاعتبار حالة جهاز توجيه PSP والقيود المفروضة على البنوك/GEO.
نشر الاحتمالات/الخطوط: يعتمد الاستعداد لدى الناشر على تأخر الملخص حسب مصدر السطر ووقت التوزيع في ذاكرة التخزين المؤقت/الحافة.
ارتفاعات البطولة: سياسة مؤقتة لاكتشاف أكثر عدوانية وغرفة انتظار.
9) أنتيباترن
الحيوية، التي تذهب إلى قاعدة البيانات/PSP → تستأنف الكتلة لمشكلة خارجية.
نقطة نهاية صحية «شاملة» بدون بدء الانفصال/الاستعداد/الحيوية.
المهلات الصعبة دون التراجع/النزف → إعادة العاصفة.
لا هستيريا → التوجيه رفرفة.
الفحص العميق، الذي يؤدي إلى إعادة التشغيل (الغرض منه هو التشخيص والتوجيه، وليس إعادة التشغيل).
مخفي 5xx في نقاط النهاية الصحية (إخفاء الحالة الحقيقية).
10) نماذج الواجهة
/ startupz → '200 OK {"uptimeSec": ..., "version": "..."} "
الشيكات: نصوص داخلية، هجرات مكتملة، مفاتيح وتكوينات محملة.
/ healthz (liensity) → '200 OK {«heapOk «: true, «fdOk «: true,» eventLoop»:» ok»}
الشيكات: دورة الأحداث، موارد العملية، عدم وجود أعلام الذعر/الغرفة.
الاستعداد (الاستعداد) →
'200 OK/503 {"canServe": true، "db": {"ok": true، "latencyMs': 12}،" cache ": {" ok ": {" ok ": true،" lag ": 0}،" localConta ": {" ok ": truch}}
/ الصحة/المدفوعات (عميقة) →
'200/206/503 {"psp. eu ": {" ok ": خطأ،" سبب ":" timeout'}، "psp. alt «: {» ok «: true},» routerMode «:» failover «}»
11) مقاييس جودة الدوائر الصحية (KPI/KRI)
وقت الخروج من «NotReady» إلى «Ready» (الإحماء SLO).
تواتر الاستعداد للرفرفة لكل خدمة.
النسبة المئوية لاستئناف تشغيل الكبسولة عن طريق الخطأ (السبب الجذري - التبعية الخارجية).
MTTR للحوادث التي لعبت فيها الآليات الصحية دورًا (قبل/بعد).
حصة الفشل التلقائي/التحلل من الميزة دون طلب.
دقة المواد الاصطناعية مقابل RUM (إيجابيات/أخطاء خاطئة).
12) خارطة طريق التنفيذ (4-8 أسابيع)
نيد. 1-2: جرد المسار الحرج ؛ بعد بدء التشغيل/الكذب/الاستعداد ؛ أدخل ردود JSON مع الفحوصات الفرعية والهستيريا.
نيد. 3-4: إضافة فحوصات عميقة: قاعدة بيانات/ذاكرة التخزين المؤقت/وسيط ؛ المواد التركيبية لتسجيل الدخول/الإيداع/الرهان في 2-3 توقعات البيئة العالمية ؛ تمكين الكشف الخارجي على بوابة/شبكة.
نيد. 5-6: الاستعداد للمدفوعات и احتياطي PSP ؛ غرفة انتظار الجبهة ؛ والتوزيع الذاتي حسب التأخر/الطوابير ؛ التنبيهات عن طريق معدل الحرق.
نيد. 7-8: أيام الفوضى (تعطيل PSP/نسخ طبق الأصل من قاعدة البيانات)، والتحقق من التراجع/النزف ؛ تغريم المهلة، PDB ؛ تقرير KPI والتصحيح.
13) القطع الأثرية
المواصفات الصحية (لكل خدمة): قائمة الشيكات، الميزانيات الزمنية، الهستيريا، الإجراءات ذات الحالة الحمراء.
Runbooks: «الاستعداد = خطأ: ماذا نفعل ؟ «، «PSP-redback: الخطوات ومعايير العودة».
سياسة التوجيه: قواعد الكشف الخارجي، قواطع الدوائر، عتبات المئوية.
Synthetic Playbook: النصوص والجغرافيا، SLO synthetics، الجدول الزمني.
Release Gate: إطلاق كتل مع تبعيات مفاتيح التحقق العميق الحمراء.
النتيجة
حلقة الفحوصات الصحية المصممة جيدًا هي نظام متعدد الطبقات من الإشارات: حيوية سهلة لبقاء العملية، وجاهزية لقدرة خدمة المرور، وبدء التشغيل لبداية آمنة، وفحوصات عميقة خاصة بالمجال للتدهور المدار والتوجيه. بالتزامن مع التوزيع التلقائي والتوجيه الخارجي والمواد التركيبية وتنبيه SLO، فإنه يقلل من مخاطر الإخفاقات المتتالية، ويقلل من MTTR ويثبت مسارات الأعمال الحرجة لمنصات iGaming.