Load Balancer چیست؟ الگوریتم‌ها، انواع، مزایا و نحوه کار

Load Balancer چیست؟ الگوریتم‌ها، انواع، مزایا و نحوه کار

همه ما روزانه از اپلیکیشن‌ها و وب‌سایت‌های زیادی مانند فروشگاه‌های آنلاین، سامانه‌های بانکی، پلتفرم‌های ویدیویی و سرویس‌های ابری استفاده می‌کنیم که باید همیشه در دسترس و بدون خطا باشند؛ اما سؤال مهم اینجاست:
وقتی هزاران یا حتی میلیون‌ها کاربر به‌صورت همزمان وارد یک سیستم می‌شوند، چگونه این حجم از درخواست‌ها بدون اختلال مدیریت می‌شود؟

اینجاست که مفهوم لود بالانسینگ یا Load Balancer اهمیت پیدا می‌کند.

به‌ زبان ساده و در تعریف Load Balancer باید بگوییم ابزاری است که ترافیک ورودی کاربران را بین چند سرور مختلف توزیع می‌کند تا از Overload شدن یه سرور جلوگیری و پایداری اپلیکیشن‌ها حفظ شود. بدون استفاده از لود بالانسر، حتی قدرتمندترین سرورها هم ممکن است در زمان اوج ترافیک از دسترس خارج شوند.

در معماری‌های مدرن، لود بالانسر مانند یک واسط نامرئی بین کاربر و سرورها عمل می‌کند. کاربران فقط یک آدرس را می‌بینند، اما در پشت صحنه، درخواست‌ها به‌صورت هوشمند بین منابع مختلف تقسیم می‌شوند. نتیجه این فرآیند، Down time کمتر، افزایش Availability در سناریوهای Failover و تجربه کاربری بهتر است.

در این مقاله به زبان ساده می‌گوییم:

  • Load Balancer چیست و چگونه کار می‌کند؟
  • چرا لود بالانسینگ برای اپلیکیشن‌های مدرن ضروری است؟
  • چه نقش مهمی در پایداری، امنیت و مقیاس‌پذیری سیستم‌ها دارد؟

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

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

کاربران امروزی انتظار دارند وب‌سایت‌ها و اپلیکیشن‌ها سرعت بالایی داشته باشند و همیشه در دسترس باشند. حتی تأخیرهای کوتاه به‌خصوص در زمان اوج ترافیک می‌تواند باعث تجربه کاربری بد و از دست رفتن مشتری برای همیشه شود. در این شرایط، Load Balancer نقش کلیدی در حفظ پایداری سیستم ایفا می‌کند.

یکی از مهم‌ترین مزایای Load Balancing، افزایش دسترس‌پذیری اپلیکیشن است. لود بالانسر با توزیع ترافیک و حذف سرورهای معیوب، کمک می‌کند سرویس‌ها حتی در شرایط بحرانی نیز فعال باقی بمانند.

یکی دیگر از مزایای Load Balancer، مقیاس‌پذیری بالای آن است. در زمان‌هایی مانند فروش بلیت یک رویداد خاص مانند کنسرت، ترافیک به‌صورت ناگهانی زیاد می‌شود، لود بالانسر، request‌ها را بین چند سرور توزیع می‌کند تا سرور Down نشود.

لود بالانسینگ همچنین نقش مهمی در افزایش امنیت دارد. Load Balancer با توزیع ترافیک بین چند سرور، سطح حمله (Attack Surface) را کم و احتمال اشباع منابع و موفقیت حملات DDoS را کاهش می‌دهد.

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

الگوریتم‌های Load Balancer به دو دسته اصلی ایستا (Static) و پویا (Dynamic) تقسیم می‌شوند:

  • Static Load Balancing: ظرفیت هر سرور از قبل مشخص است و درخواست‌ها براساس این ظرفیت بین سرورها تقسیم می‌شوند. این روش برای سیستم‌هایی با ترافیک ثابت و قابل پیش‌بینی مناسب است.
  • Dynamic Load Balancing: در زمان واقعی بررسی می‌کند کدام سرور بیشترین ظرفیت آزاد را دارد و درخواست‌ها را به آن ارسال می‌کند. این الگوریتم برای سیستم‌هایی با نوسانات زیاد و ترافیک غیر قابل پیش‌بینی ایده‌آل است.

الگوریتم‌های رایج Load Balancer

  1. الگوریتم Round Robin (چرخشی): با Round Robin در Load Balancer درخواست‌ها به ترتیب به سرورها ارسال می‌شوند. اینکار با کمک Domain Name System (DNS) انجام می‌شود.
  2. الگوریتم Threshold (حد آستانه): درخواست‌ها تا رسیدن به حد مشخصی به هر سرور ارسال می‌شوند.
  3. الگوریتم Random with Two Choices (انتخاب تصادفی با دو گزینه): دو سرور انتخاب می‌شوند و کم‌ بارترین آن‌ها درخواست را دریافت می‌کند.
  4. الگوریتم Least Connections (کمترین اتصالات فعال): درخواست جدید به سروری می‌رود که کمترین اتصال فعال را دارد.
  5. الگوریتم Least Time (کمترین زمان پاسخ): ترکیبی از کمترین اتصالات و سریع‌ترین پاسخ‌ها.
  6. الگوریتم URL Hash: درخواست‌ها براساس URL کاربر به سرور مشخص هدایت می‌شوند.
  7. الگوریتم Source IP Hash: در الگوریتم IP hash load balancing درخواست‌های یک IP همیشه به همان سرور قبلی هدایت می‌شوند.
  8. الگوریتم Consistent Hashing: سرورها و کاربران روی یک حلقه مجازی قرار می‌گیرند و درخواست‌ها به سرور بعدی موجود هدایت می‌شوند.

 

جدول الگوریتم‌های لود بالانسینگ
الگوریتم نوع  نحوه عملکرد مثال ساده
Round Robin ایستا درخواست‌ها به ترتیب به سرورها ارسال می‌شوند و دوباره از اول ادامه پیدا می‌کنند. نوبت دادن تک به تک مشتری‌ها به صندوق‌ها در یک فروشگاه
Threshold ایستا درخواست‌ها تا رسیدن به یک حد مشخص به هر سرور می‌‌روند. هر صندوق فروشگاهی تا رسیدن به تعداد مشخصی خدمات می‌دهد.
Random with Two Choices پویا دو سرور به صورت تصادفی انتخاب می‌شوند و کم‌ بارترین آن‌ها درخواست را دریافت می‌کند. انتخاب دو صندوق و رفتن به صف کوتاه‌تر
Least Connections پویا درخواست به سروری با کمترین اتصال فعال ارسال می‌شود. مشتری‌ها به صف کوتاه‌ترین صندوق می‌روند.
Least Time پویا ترکیبی از کمترین اتصالات و سریع‌ترین پاسخ صفی که هم سریع است و هم شلوغ نیست انتخاب می‌شود.
URL Hash ایستا درخواست‌ها بر اساس URL کاربر به سرور مشخص هدایت می‌شوند. کاربری که همیشه همان صفحه را باز می‌کند، به همان سرور قبلی می‌رود.
Source IP Hash ایستا / پویا درخواست‌های یک IP همیشه به همان سرور قبلی هدایت می‌شوند همان مشتری همیشه به همان صندوق رجوع می‌کند.
Consistent Hashing پویا سرورها و کاربران روی یک حلقه مجازی قرار می‌گیرند و درخواست‌ها به سرور بعدی موجود هدایت می‌شوند. مشتری‌ها براساس ظرفیت صندوق‌ها به ترتیب به صندوق بعدی هدایت می‌شوند.

Load Balancing چگونه کار می‌کند؟

در یک معماری استاندارد:

  1. کاربر درخواست خود را به یک آدرس واحد (VIP) ارسال می‌کند.
  2. Load Balancer درخواست را دریافت می‌کند.
  3. وضعیت سلامت سرورها (Health Check) بررسی می‌شود.
  4. براساس الگوریتم Load Balancing، بهترین سرور انتخاب می‌شود.
  5. درخواست به Backend مناسب فرستاده می‌شود.

فرآیند فوق می‌تواند به دو شکل ایستا (Static) یا پویا (Dynamic) انجام شود.

 

لود بالانسینگ ایستا (Static Load Balancing)

در Load Balancing ایستا، قوانین از قبل مشخص شده‌اند و ترافیک به‌صورت یکنواخت بین سرورها توزیع می‌شود. این روش برای سیستم‌هایی با ترافیک ثابت و قابل پیش‌بینی مناسب است. 

فرض کنید شرکتی سایتی با صفحات ثابت مانند معرفی شرکت یا کاتالوگ محصولات دارد. در این حالت:

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

این سناریو برای Static Load Balancing ایده‌آل است.

 

لود بالانسینگ پویا (Dynamic Load Balancing)

در بسیاری از کسب‌وکارها، میزان ترافیک همیشه ثابت نیست. برای مثال:

  • فروشگاه اینترنتی در کمپین‌ها و مناسبت‌ها خاص مانند Black Friday
  • سامانه‌های نوبت‌دهی
  • سایت‌های دولتی در زمان‌های خاص
  • سازمان‌های امدادی در بحران‌ها

در این شرایط، Load Balancer باید به‌صورت لحظه‌ای وضعیت سرورها را بررسی و ترافیک را براساس ظرفیت واقعی هر سرور توزیع کند. این دقیقاً کاری است که Dynamic Load Balancing انجام می‌دهد.

 

انواع لود بالانسر

Load Balancerها براساس لایه OSI و فناوری اجرا به دسته‌های مختلف تقسیم می‌شوند.

براساس لایه OSI

Load Balancerها اغلب در لایه‌های ۴ و ۷ مدل OSI فعالیت می‌کنند. مدل OSI شبکه شامل ۷ لایه است، از لایه فیزیکی تا اپلیکیشن، هر لایه وظایف خاص خود را دارد. فایروال‌ها اغلب در لایه‌های ۱ تا ۳ کار می‌کنند، اما لود بالانسرها در لایه ۴ و ۷ فعال هستند و تصمیم می‌گیرند ترافیک به کدام سرور برود.

  • Layer 4 Load Balancer (لایه ۴)

لود بالانسر L4 تصمیمات مسیریابی خود را براساس داده‌های پروتکل‌های شبکه و انتقال مانند IP، TCP، FTP یا UDP می‌گیرد. هنگامی که L4 load balancer درخواست را دریافت می‌کند، آدرس IP مقصد را به آدرس سرور محتوای انتخابی تغییر می‌دهد (ترجمه آدرس شبکه دو جهته یا Bi-directional NAT). لود بالانسر لایه ۴ برای ترافیک ساده در مقیاس بالا مناسب است.

  • Layer 7 Load Balancer (لایه ۷)

لود بالانسر L7 براساس اطلاعات اپلیکیشن مانند هدرهای HTTP، کوکی‌ها و فرم‌ها تصمیم می‌گیرد ترافیک را به سرور مناسب هدایت کند. همچنین قابلیت Content Switching دارد، یعنی می‌تواند برای صفحات یا پارامترهای مختلف، سرورهای متفاوتی را انتخاب کند. این نوع Load Balancer برای وب‌ اپلیکیشن‌های پیچیده و سیستم‌هایی که نیاز به تصمیم‌گیری دقیق براساس محتوا دارند، ایده‌آل است.

 

بر اساس فناوری اجرا

Load Balancerها علاوه بر لایه شبکه، براساس فناوری اجرا نیز به سه دسته لود بالانسر نرم افزاری و سخت افزاری و مجازی تقسیم می‌شوند که هر نوع مزایا و کاربردهای خاص خود را دارد و بسته به نیاز سازمان، می‌توانیم از آن‌ها به‌تنهایی یا ترکیبی استفاده کنیم تا ترافیک شبکه و اپلیکیشن‌ها به صورت بهینه مدیریت شود.

  1. Load Balancer سخت‌ افزاری (Hardware Load Balancer)

دستگاه فیزیکی با سیستم‌عامل ویژه که ترافیک را بین چند سرور توزیع می‌کند. لود بالانسرهای سخت‌افزاری با توان پردازشی بالا اغلب در دیتاسنترهای Enterprise استفاده می‌شوند.

مزایا:

  • Performance بسیار بالا
  • پایداری و قابلیت اطمینان زیاد

محدودیت‌ها:

  • هزینه اولیه بالا
  • مقیاس‌پذیری محدود نسبت به راهکارهای نرم‌افزاری
  1. Load Balancer نرم افزاری (Software Load Balancer)

این نوع لود بالانسر روی سرورها یا بسترهای ابری اجرا می‌شود و امروزه انتخاب اصلی در معماری‌های Cloud‑Native است. این راه‌حل‌ها ارزان‌تر از راه‌حل‌های سخت‌افزاری با قابلیت‌های مشابه هستند و توسط وب‌ سایت‌های پرترافیکی مانند Netflix استفاده می‌شوند. از نمونه‌های پرکاربر می‌توانیم به  استفاده در Kubernetes، Multi‑Cloud و Hybrid Cloud اشاره کنیم.

مزایا:

  • انعطاف‌پذیری بالا
  • مقیاس‌پذیری پویا
  • هزینه کمتر
  1. Load Balancer مجازی (Virtual Load Balancer)

ترکیبی از سخت‌افزار و نرم‌افزار که از نرم‌افزار ADC برای توزیع ترافیک استفاده می‌کند.

 

Load Balancerهای مبتنی بر Cloud

لودبالانسرهای مبتنی بر Cloud فقط برای پخش ترافیک در زمان شلوغی استفاده نمی‌شوند. این نوع Load Balancerها که به آن‌ها Cloud-Native Load Balancer گفته می‌شود، از قابلیت‌های پیشرفته‌ای مانند تحلیل ترافیک، پیش‌بینی گلوگاه‌ها (Bottleneck) و کمک به بهینه‌سازی زیرساخت IT قبل از بروز مشکل پشتیبانی می‌کنند.

در ادامه، مهم‌ترین انواع Load Balancerهای مبتنی بر Cloud را بررسی می‌کنیم:

Application Load Balancing (لود بالانسینگ در سطح اپلیکیشن)

Application Load Balancer روی عملکرد و در دسترس‌ بودن اپلیکیشن‌ها تمرکز دارد. این نوع لود بالانسر درخواست‌های کاربران را در سطح اپلیکیشن (مثلاً HTTP/HTTPS) بررسی می‌کند و آن‌ها را به مناسب‌ترین سرور هدایت می‌کند.

کاربرد اصلی:

  • افزایش مقیاس‌پذیری اپلیکیشن
  • بهبود عملکرد
  • کاهش هزینه‌های عملیاتی

این نوع Load Balancer برای سازمان‌هایی که به تجربه کاربری و پایداری سرویس اهمیت می‌دهند، بسیار حیاتی است.

Global Server Load Balancing (GSLB)

Global Server Load Balancing زمانی استفاده می‌شود که کاربران در نقاط مختلف جهان قرار دارند. در این روش، کاربران به نزدیک‌ترین یا مناسب‌ترین دیتاسنتر هدایت می‌شوند.

مزایا:

    • کاهش تأخیر (Latency)
    • افزایش دسترسی پذیری جهانی
  • بهبود تجربه کاربری برای کاربران بین‌المللی

DNS Load Balancing

در DNS Load Balancing، دامنه طوری پیکربندی می‌شود که درخواست‌های کاربران بین چند سرور یا Endpoint مختلف توزیع شود.

ویژگی مهم:

  • توزیع بار در سطح DNS
  • ساده و مقیاس‌پذیر
  • مناسب برای سناریوهای توزیع جغرافیایی

البته DNS Load Balancing اغلب دید دقیقی از وضعیت لحظه‌ای سرورها ندارد، مگر اینکه با روش‌های پیشرفته ترکیب شود.

Network Load Balancing

Network Load Balancing اغلب کنار Application Delivery Controller (ADC) استفاده می‌شود. ADCها به‌عنوان یک Proxy بین کاربران و سرورها عمل می‌کنند و علاوه بر Load Balancing، قابلیت‌هایی مثل:

  • Cache
  • Compression
  • SSL Offloading

را نیز ارائه می‌دهند. در این ساختار، مجموعه‌ای از سرورها از دید کاربر نهایی مانند یک سرور واحد دیده می‌شوند.

HTTP(S) Load Balancing

HTTP(S) Load Balancing به توزیع ترافیک وب بین چند سرور یا گروهی از سرورها گفته می‌شود.

هدف اصلی:

  • استفاده بهینه از منابع
  • افزایش پایداری سرویس
  • جلوگیری از overload شدن یک سرور خاص

این نوع لود بالانسینگ یکی از رایج‌ترین روش‌ها در اپلیکیشن‌های وب و Cloud است.

Internal Load Balancing

Internal Load Balancer داخل شبکه خصوصی (Private Subnet) قرار می‌گیرد و IP عمومی ندارد. این نوع Load Balancer برای ارتباط بین سرویس‌های داخلی (Microservices، Backendها) استفاده می‌شود.

کاربرد:

    • افزایش پایداری سرویس‌های داخلی
    • بهبود امنیت
  • تفکیک ترافیک داخلی و خارجی

Diameter Load Balancing

Diameter Load Balancer برای توزیع ترافیک سیگنالینگ در شبکه‌های مخابراتی استفاده می‌شود. در این روش، به‌جای افزایش هزینه در لایه انتقال داده، لایه کنترلی (Control Plane) مقیاس‌ پذیر می‌شود. Diameter Load Balancing می‌تواند ایستا (Static) یا پویا (Dynamic) باشد و راهکاری مقرون‌به‌صرفه برای شبکه‌های بزرگ محسوب می‌شود.

جمع‌بندی؛ چرا درک Load Balancer یک مزیت رقابتی است؟

در سال ۲۰۲۵، Load Balancer یک الزام استراتژیک برای پایداری سرویس‌ها محسوب می‌شود. سازمان‌هایی که درک عمیقی از Load Balancing، الگوریتم‌ها و کاربردهای آن دارند، زیرساخت‌هایی مقاوم‌تر، امن‌تر و مقیاس‌پذیرتر طراحی می‌کنند.

سوالات متداول

  1. لود بالانسینگ چیست و چه کاربردی دارد؟

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

کاربرد اصلی لود بالانسینگ، افزایش پایداری، دسترس‌پذیری و عملکرد اپلیکیشن‌ها است. این کار باعث می‌شود حتی در زمان اوج ترافیک، سرویس‌ها بدون قطعی و با سرعت مناسب در دسترس کاربران باقی بمانند.

  1. تفاوت Load Balancer سخت‌افزاری و نرم‌افزاری چیست؟

Load Balancer سخت‌افزاری یک دستگاه فیزیکی اختصاصی است که اغلب در دیتاسنترهای On-Premise استفاده می‌شود و عملکرد بسیار پایدار و قدرتمندی دارد.

در مقابل، Load Balancer نرم‌افزاری به‌صورت یک سرویس یا برنامه اجرا می‌شود و انعطاف‌پذیری و مقیاس‌پذیری بیشتری به‌ویژه در محیط‌های Cloud دارذ.

  1. آیا لود بالانسر امنیت را افزایش می‌دهد؟

بله، Load Balancer می‌تواند نقش مهمی در افزایش امنیت ایفا کند. با توزیع ترافیک بین چند سرور، احتمال از کار افتادن یک سیستم بر اثر حملات کاهش پیدا می‌کند. همچنین بسیاری از Load Balancerها قابلیت‌هایی مانند کاهش اثر حملات DDoS، پنهان‌سازی ساختار داخلی شبکه و هدایت ترافیک مخرب به سرورهای امن‌تر را فراهم می‌کنند.

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

بهترین الگوریتم لود بالانسینگ وجود ندارد؛ انتخاب الگوریتم به نوع ترافیک و معماری سیستم بستگی دارد. بهترین الگوریتم همان الگوریتمی است که بیشترین هماهنگی را با نیاز واقعی سیستم شما داشته باشد.

  1. لود بالانسینگ در کلاد چگونه کار می‌کند؟

در محیط‌های ابری، Load Balancerها به‌صورت سرویس‌های مدیریت‌ شده ارائه می‌شوند و به‌طور خودکار ترافیک را بین منابع مختلف توزیع می‌کنند. این Load Balancerها می‌توانند به‌صورت پویا افزایش یا کاهش ترافیک را تشخیص دهند، سرورهای سالم را شناسایی و منابع جدید را به‌صورت خودکار به چرخه سرویس اضافه کنند.