Ahmed Eldegla

Load Balancer

تعرف على مفهوم الـ Load Balancer وكيف يقوم بتوزيع ترافيك المستخدمين بذكاء عبر خوارزميات مثل Round Robin و Least Connections ودور الـ Health Checks في حماية السيرفرات من الانهيار.

Ahmed EldeglaBackend Developer

متوسط2 دقيقة قراءة

مقدمة: حكاية رجل الكشري والـ Load Balancer

سمعت عن الـ Load Balancer قبل كده؟ لو ما سمعتش عنه، ولا يهمّك.. تعالى نرجع تاني لمطعم الكشري بتاعنا!

الراجل اللي واقف على باب المطعم بينظم الدخول.. ده في الحقيقة أهم واحد في المكان كله. تعالى أقولك ليه.


المشكلة: زحمة على طبّاخ واحد!

تخيّل معايا: عندنا 4 طبّاخين جاهزين في المطبخ. وفجأة، كل الزباين اللي دخلوا اتكدسوا قدام أول طبّاخ بس.. والتلاتة التانيين قاعدين ساكتين ومفيش في إيدهم شغل!

النتيجة الطبيعية:

  • الطبّاخ الأول هيقع من الضغط وهينهار.
  • الزباين هتفضل واقفة مستنية بالساعات.
  • باقي موارد المطعم مهدورة على الفاضي.

الحل الأول: التوزيع بالدور (Round Robin)

هنا بيتدخل الراجل الشاطر اللي على الباب، ويبدأ يوزع الزباين بنظام عادل:

"إنت روح للأول.. وإنت للتاني.. وإنت للتالت.. وإنت للرابع.. واللي بعده يرجع للأول تاني!"

التكنيك ده في عالم الـ System Design بنسميه:

  • Round Robin: وهو أبسط تكنيك لتوزيع الطلبات بالتساوي وبالترتيب الدائري على السيرفرات المتاحة.

المشكلة التانية: مش كل الطلبات شبه بعض!

بس استنى لحظة.. الواقع بيقول إن مش كل زبون زي التاني:

  • زبون داخل يطلب علبة صغيرة جاهزة.
  • زبون تاني طالب عزومة كاملة ومحتاج وقت طويل في التحضير.

لو وزعناهم بالدور الأعمى، ممكن طبّاخ يشيل 3 طلبات تقيلة جداً ويتعطل، وطبّاخ تاني يخلص طلباته الخفيفة ويفضى!

الحل: الذكاء في التوزيع (Least Connections)

الراجل اللي على الباب يبص على الصالة ويشوف: "مين أقل طبّاخ واقف قدامه شغل حالياً؟" ويبعت الزبون الجديد ليه فوراً.

الاستراتيجية دي تقنياً اسمها:

  • Least Connections: السيرفر صاحب أقل عدد اتصالات أو معالجات نشطة حالياً هو اللي بياخد الطلب الجديد.

ماذا لو تعب طبّاخ ووقع؟ (Health Check)

طب افرض طبّاخ تعب فجأة ووقع من التعب؟ الراجل الذكي مش هيفضل يبعتله زباين تعطل عنده؛ ده بيلف ويبص عليهم كل شوية:

  • الطبّاخ اللي مش بيرد أو مش قادر يشتغل.. بيبطّل يدخّله أي زبون جديد.
  • يفضل متابعه لحد ما يقوم ويفوق ويرجع جاهز للخدمة من تاني.

الحركة دي في هندسة النظم بنسميها:

  • Health Check: فحص دوري بيرسله الـ Load Balancer لكل سيرفر ليتأكد إنه شغال وسليم (Healthy)؛ لو سيرفر وقع، بيخرجه من التوزيع مؤقتاً لحد ما يتعافى.

في الحقيقة.. مين هو "راجل الكشري"؟

الراجل ده في عالم البرمجيات والسيرفرات هو:

  • سيرفر وسيط، أو Software مشهور جداً زي Nginx أو HAProxy.
  • أو خدمة سحابية مُدارة زي AWS Load Balancer (ALB) أو Cloudflare.

شغلته ومهمته الوحيدة تتلخص في جملة واحدة:

إن ولا سيرفر يتعب ويقع.. وولا يوزر يقف مستني!


ده كان تاني Deep Dive في رحلتنا. الحلقة الجاية هنتكلم عن سر السرعة الخارقة في كل التطبيقات الكبيرة.. وهو الـ Cache. خليك متابع!

آخر تحديث ٢٠ أكتوبر ٢٠٢٦ · كل المقالات