لود بالانسر مثل مسئول صف در یک بانک پرمشتری است: مشتری‌ها را به باجه‌های آزاد هدایت می‌کند تا یک باجه شلوغ و بقیه خالی نباشند. کاربر به یک آدرس وصل می‌شود و لود بالانسر درخواستش را به یکی از چند سرور پشتی می‌فرستد.

دو فایده‌ی اصلی#

  • توزیع بار: ظرفیت کل با افزودن سرور بیشتر می‌شود.
  • دسترس‌پذیری: لود بالانسر سلامت سرورها را مرتب بررسی می‌کند و سرور خراب را از چرخه خارج می‌کند؛ کاربران متوجه قطعی نمی‌شوند.

الگوریتم‌های رایج#

  • نوبتی (Round Robin): هر درخواست به سرور بعدی می‌رود.
  • کمترین اتصال: به سروری که فعلاً کمترین کار را دارد.
  • بر اساس آی‌پی یا کوکی: کاربر همیشه به همان سرور می‌رود (Sticky Session).

مثال#

یک سایت خبری سه سرور وب دارد. هنگام یک خبر مهم ترافیک زیاد می‌شود؛ لود بالانسر درخواست‌ها را بین هر سه پخش می‌کند. اگر یک سرور از کار بیفتد، فقط دو سرور دیگر بار را می‌گیرند.

انواع#

لایه‌ی چهارم (TCP) سریع‌تر و ساده‌تر است و لایه‌ی هفتم (HTTP) می‌تواند بر اساس آدرس، هدر یا کوکی تصمیم بگیرد و گواهی SSL را هم مدیریت کند.

نکات#

خود لود بالانسر نباید نقطه‌ی شکست واحد شود؛ در سرویس‌های ابری معمولاً مدیریت‌شده و چندنسخه‌ای است. اگر برنامه نشست را روی حافظه‌ی یک سرور نگه می‌دارد، باید نشست را به یک ذخیره‌ی مشترک منتقل کنید یا از Sticky Session استفاده کنید.