توزیع بار (Load Balancing)

Load Balancer: الگوریتم‌های توزیع (Round Robin، Least Connections، Hash)، لایه ۴ و ۷ و Health Check

Load Balancer چیست؟

توزیع‌کننده بار ترافیک ورودی را بین چند سرور پخش می‌کند — قلب مقیاس افقی. بدون آن، «۵ سرور» یعنی ۴ سرور بیکار و ۱ سرور سوخته!

الگوریتم‌های توزیع

الگوریتمایدهمناسب برای
Round Robinنوبتی گردشیسرورهای هم‌قدرت، درخواست‌های هم‌اندازه
Weighted RRنوبتی با وزنسرورهای ناهمگن
Least Connectionsکم‌ترین اتصال بازدرخواست‌های طولانی/متفاوت ✓
IP Hashهش IP کاربر → سرور ثابتنیاز به Session چسبان
Least Response Timeسریع‌ترین پاسخ‌دهحساس به تأخیر

لایه ۴ در برابر لایه ۷

ویژگیL4L7
سطح کارTCP/UDPHTTP (مسیر، هدر، کوکی)
سرعتسریع‌تر ✓کندتر
هوشمندیمحدودRouting بر اساس URL، SSL، کش ✓
مثالHAProxy TCP، AWS NLBNginx، AWS ALB

در عمل: L7 برای اپ‌های وب (هوشمند)، L4 برای دیتابیس/TCP خام (سریع).

Health Check — حذف سرور مرده

LB هر چند ثانیه سرورها را چک می‌کند (مثلاً GET /health):

بدون Health Check، LB ترافیک را به سرور مرده می‌فرستد = قطعی!

افزونگی خود LB!

LB خودش تک‌نقطه‌شکست است ← جفت LB (Active-Passive) با VIP و keepalived: اگر اصلی مرد، IP به پشتیب می‌رود.

نکته مصاحبه: LB را در هر دیاگرام بکشید و الگوریتم را با دلیل بگویید: «Least Connections چون درخواست‌های ما طولانی‌اند» — همین جزئیات امتیاز می‌آورد.

جمع‌بندی

این مبحث بخشی از دوره آموزش کامل طراحی سیستم (System Design) است.

ابزارهای مرتبط