X
X

Thundering Herd Problem: لماذا تنهار الأنظمة أحيانًا بعد عودة الخدمة؟

الصفحة الرئيسيةمقالاتThundering Herd Problem: لماذا تنهار الأنظمة أ...

Thundering Herd Problem: لماذا تنهار الأنظمة أحيانًا بعد عودة الخدمة؟

مقدمة

قد تعتقد أن المشكلة تنتهي بمجرد عودة الخادم أو قاعدة البيانات للعمل بعد انقطاع مؤقت. لكن في بعض الأحيان تبدأ مشكلة جديدة أخطر تعرف باسم Thundering Herd Problem.

تحدث هذه الظاهرة عندما تحاول أعداد كبيرة من العمليات أو المستخدمين الوصول إلى المورد نفسه في اللحظة نفسها.

ما هي Thundering Herd Problem؟

هي حالة يحدث فيها تدفق هائل ومتزامن للطلبات نحو خدمة أو مورد معين فور توفره بعد فترة توقف أو انتظار.

مثال عملي

لنفترض أن:

  • قاعدة البيانات توقفت لدقيقة واحدة.
  • آلاف الطلبات كانت تنتظر.

عند عودة القاعدة للعمل:

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

أين تظهر المشكلة؟

  • قواعد البيانات
  • أنظمة التخزين المؤقت
  • Message Queues
  • APIs
  • أنظمة المصادقة

لماذا تعتبر خطيرة؟

ارتفاع الحمل فجأة

قد يتجاوز قدرة النظام.

استهلاك الموارد

المعالج والذاكرة قد يصلان للحد الأقصى.

تكرار الأعطال

تعود المشكلة مباشرة بعد الاستعادة.

تجربة مستخدم سيئة

بطء أو توقف متكرر للخدمات.

كيف يمكن منعها؟

استخدام Backoff Algorithms

زيادة فترات إعادة المحاولة تدريجيًا.

Rate Limiting

التحكم في عدد الطلبات.

Queuing Systems

تنظيم معالجة الطلبات.

Caching

تقليل الاعتماد على المورد الأساسي.

أمثلة من الواقع

تحدث هذه المشكلة كثيرًا في:

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

FAQ

هل Thundering Herd Problem مرتبطة بالأعطال فقط؟

لا، قد تحدث أيضًا عند انتهاء فترة Cache أو عند تشغيل خدمة جديدة.

هل Load Balancer يحل المشكلة؟

يساعد في تقليل التأثير لكنه لا يمنع السبب الأساسي.

الخلاصة

Thundering Herd Problem من المشكلات الشائعة في الأنظمة واسعة النطاق، وقد تؤدي إلى إعادة تعطل الخدمات مباشرة بعد استعادتها إذا لم تتم إدارة الطلبات بشكل صحيح.


Top