في الأنظمة الموزعة، تفشل الاستدعاءات. إعادة المحاولات مع التراجع الأسي تتعافى من الأخطاء المؤقتة؛ قاطع الدائرة يمنعك من إرسال طلبات متكررة لخدمة معطلة بالفعل. هي متكاملة: أعد محاولة الخلل البسيط، وأيقف العمل عند انقطاع الخدمة.
في الأنظمة الموزعة، تفشل الاستدعاءات. إعادة المحاولات مع التراجع الأسي تتعافى من الأخطاء المؤقتة؛ قاطع الدائرة يمنعك من إرسال طلبات متكررة لخدمة معطلة بالفعل. هي متكاملة: أعد محاولة الخلل البسيط، وأيقف العمل عند انقطاع الخدمة.
للفشل المؤقت (انتهاء المهلة الزمنية، انقطاعات الشبكة القصيرة، 503)، أعد المحاولة — لكن تراجع أسياً وأضف تشويشاً عشوائياً بحيث تنتشر إعادات المحاولات بدلاً من التزامن في موجة مفاجئة.
attempt 1 → wait ~1s (+ random jitter)
attempt 2 → wait ~2s (+ random jitter)
attempt 3 → wait ~4s (+ random jitter)
→ cap at maxRetries (e.g. 3) and a max delay → don't retry forever
تحذيرات رئيسية:
يتتبع قاطع الدائرة الفشل في خدمة تابعة وبعد حد معين ينفتح — يفشل بسرعة (أو يعيد بديل) بدلاً من استدعاء خدمة معطلة. بعد فترة انتظار يصبح شبه مفتوح للتحقق من التعافي.
CLOSED → calls pass through; count failures
too many failures → trip → OPEN
OPEN → fail fast immediately (no call); start cooldown timer
cooldown elapsed → HALF-OPEN
HALF-OPEN → allow a few probe calls
success → CLOSED (recovered) ; failure → back to OPEN
Retry → transient, likely-to-succeed-soon errors (1 slow call)
Circuit breaker → repeated/sustained failures (the dependency is down)
→ use together: breaker prevents retries from piling onto a dead service
بدون هذه الآليات، فشل خدمة تابعة واحدة يُسقط المستدعي معها: تتراكم الطلبات على انتهاء المهلة الزمنية، وتضخم إعادات المحاولات الحمل، وينتشر الفشل عبر الخدمات. التراجع الأسي مع التشويش العشوائي يتعافى من الأعطال البسيطة بدون عاصفة إعادة محاولات؛ التحديد والخصائص الثابتة تبقي إعادات المحاولات آمنة؛ وقاطع الدائرة يوقف هدر الموارد على خدمة معطلة ويعطيها مجالاً للتعافي. معاً يحولان فشل الخدمة التابعة إلى حدث محتوى وقابل للشفاء الذاتي.
مكتبة من أسئلة مقابلات تقنية المعلومات مع إجابات مفصّلة — من المبتدئ إلى المتقدم.
تبرع