لود بالانسینگ ترافیک را بین چند سرور تقسیم می‌کند تا سایت همیشه در دسترس بماند. در این مقاله انواع Load Balancer و الگوریتم‌های آن را بررسی می‌کنیم.

لود بالانسینگ چیست؟

لود بالانسینگ (Load Balancing) روشی است برای توزیع ترافیک ورودی بین چند سرور به‌جای تکیه بر یک سرور واحد. این تکنیک یکی از پایه‌های اصلی ساخت سرویس‌های مقیاس‌پذیر و پایدار است که می‌توانند ترافیک بالا را بدون افت عملکرد مدیریت کنند.

لود بالانسر چطور کار می‌کند؟

یک لود بالانسر مثل یک راهنمای ترافیک عمل می‌کند: درخواست‌های ورودی کاربران را می‌گیرد و بر اساس الگوریتم مشخصی بین چند سرور بک‌اند توزیع می‌کند. اگر یکی از سرورها overload شود یا از کار بیفتد، لود بالانسر به‌صورت خودکار ترافیک را به سرورهای سالم دیگر هدایت می‌کند.

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

  • Round Robin: درخواست‌ها به‌ترتیب و مساوی بین سرورها توزیع می‌شود.
  • Least Connections: درخواست جدید به سروری فرستاده می‌شود که در حال حاضر کمترین اتصال فعال را دارد.
  • IP Hash: بر اساس آی‌پی کاربر، همیشه به یک سرور مشخص هدایت می‌شود (مفید برای حفظ Session).
  • Weighted: سرورهای قوی‌تر سهم بیشتری از ترافیک دریافت می‌کنند.

چرا لود بالانسینگ مهم است؟

  • مقیاس‌پذیری افقی: به‌جای ارتقای یک سرور بزرگ‌تر (Scale Up)، می‌توانید چند سرور کوچک‌تر اضافه کنید (Scale Out) که هم انعطاف‌پذیرتر و هم مقرون‌به‌صرفه‌تر است.
  • در دسترس بودن بالا: از کار افتادن یک سرور، کل سرویس را از کار نمی‌اندازد.
  • مدیریت بهتر ترافیک اوج: در زمان‌های پرترافیک (مثل حراج یا کمپین)، بار به‌صورت متعادل بین چند سرور تقسیم می‌شود.

لود بالانسینگ و Failover

این دو مفهوم اغلب همراه هم به‌کار می‌روند اما هدف متفاوتی دارند؛ برای توضیح کامل تفاوت آن‌ها به مقاله Failover چیست؟ مراجعه کنید.

چه زمانی به لود بالانسینگ نیاز داریم؟

اگر یک سرویس یا سایت شما به حدی از ترافیک رسیده که یک سرور به‌تنهایی جوابگو نیست، یا در دسترس بودن ۲۴/۷ برایتان حیاتی است، زمان راه‌اندازی معماری چندسروری با لود بالانسر فرا رسیده. برای شروع، معمولاً دو یا چند سرور مجازی پشت یک لود بالانسر ساده (مثل Nginx یا HAProxy) کافی است.