موازنه بار یا Load Balancing روشی برای توزیع متعادل ترافیک شبکه بین مجموعهای از منابع است که از یک برنامه کاربردی پشتیبانی میکنند. برنامههای مدرن باید میلیونها کاربر را بهصورت همزمان پردازش کرده و متن، ویدیو، تصاویر و سایر دادهها را بهطور سریع و قابلاعتماد به هر کاربر ارائه دهند. برای مدیریت این حجم بالای ترافیک، اکثر برنامهها دارای چندین سرور منابع با دادههای تکراری بین آنها هستند. یک موازنهکننده بار، دستگاهی است که بین کاربر و گروه سرورها قرار گرفته و بهعنوان یک واسط نامرئی عمل میکند تا اطمینان حاصل شود که تمامی سرورها بهصورت مساوی مورد استفاده قرار میگیرند.
مزایای موازنه بار
موازنه بار اینترنتی بین سرورهای برنامه و بازدیدکنندگان یا مشتریان را هدایت و کنترل میکند. در نتیجه، قابلیت دسترسی، مقیاسپذیری، امنیت و عملکرد برنامه بهبود مییابد.
قابلیت دسترسی برنامه
خرابی سرور یا انجام تعمیرات میتواند باعث افزایش زمان خرابی برنامه و عدم دسترسی آن برای بازدیدکنندگان شود. موازنهکنندههای بار تحمل خطای سیستم را افزایش داده و بهطور خودکار مشکلات سرور را شناسایی کرده و ترافیک مشتری را به سرورهای در دسترس هدایت میکنند. این ویژگی به کاربران امکان انجام وظایف زیر را میدهد:
- اجرای عملیات نگهداری یا بهروزرسانی سرورهای برنامه بدون ایجاد زمان خرابی
- فراهم کردن بازیابی خودکار در هنگام بروز مشکل یا خرابی سرورها
- انجام بررسیهای سلامت سرورها و جلوگیری از مشکلاتی که منجر به خرابی برنامه میشوند
مقیاسپذیری برنامه
موازنهکنندههای بار به توزیع هوشمندانه ترافیک شبکه بین سرورها کمک میکنند. به این ترتیب، برنامه شما قادر خواهد بود هزاران درخواست مشتری را مدیریت کند، زیرا موازنه بار:
- از ایجاد گلوگاههای ترافیکی در یک سرور خاص جلوگیری میکند
- میزان ترافیک برنامه را پیشبینی میکند تا در صورت نیاز، سرورها را افزایش یا کاهش دهید
- افزونگی (Redundancy) را به سیستم اضافه میکند تا مقیاسپذیری بهطور مؤثر انجام شود
امنیت برنامه
موازنهکنندههای بار با داشتن ویژگیهای امنیتی داخلی، یک لایه حفاظتی اضافی به برنامههای اینترنتی اضافه میکنند. این ابزارها در مقابله با حملات DDoS که در آن مهاجمان حجم زیادی از درخواستها را به یک سرور ارسال میکنند تا آن را از کار بیندازند، بسیار مفید هستند. سایر ویژگیهای امنیتی عبارتاند از:
- نظارت بر ترافیک و مسدود کردن محتواهای مخرب
- هدایت خودکار ترافیک مخرب به چندین سرور پشتیبان برای کاهش تأثیر حمله
- مسیریابی ترافیک از طریق گروهی از فایروالهای شبکه برای امنیت بیشتر
عملکرد برنامه
موازنه بار با افزایش سرعت پاسخگویی و کاهش تأخیر شبکه، عملکرد برنامه را بهبود میبخشد. وظایف کلیدی که موازنهکننده بار انجام میدهد، شامل موارد زیر است:
- توزیع مساوی بار بین سرورها برای بهینهسازی عملکرد برنامه
- هدایت درخواستهای مشتری به سرورهای نزدیکتر از نظر جغرافیایی برای کاهش تأخیر
- تضمین قابلیت اطمینان و عملکرد منابع محاسباتی فیزیکی و مجازی
انواع الگوریتمهای موازنه بار
الگوریتم موازنه بار مجموعهای از قوانین است که یک موازنهکننده بار از آن پیروی میکند تا بهترین سرور را برای هر درخواست مشتری انتخاب کند. این الگوریتمها در دو دسته کلی قرار میگیرند: ایستا و پویا.
موازنه بار ایستا
این الگوریتمها از قوانین ثابت پیروی کرده و به وضعیت فعلی سرورها وابسته نیستند. نمونههایی از این روش عبارتاند از:
- روش Round-Robin: سرورها دارای آدرسهای IP مشخصی هستند که مشخص میکند کدام درخواست به کدام سرور ارسال شود. در این روش، درخواستها بهطور چرخشی بین سرورها توزیع میشوند.
- روش Weighted Round-Robin: در این روش، به هر سرور بر اساس اولویت یا ظرفیت آن وزنی اختصاص داده میشود. سرورهایی با وزن بالاتر، ترافیک بیشتری دریافت میکنند.
- روش IP Hash: در این روش، آدرس IP مشتری توسط موازنهکننده بار تبدیل به عددی شده و به یک سرور خاص اختصاص داده میشود.
موازنه بار پویا
این الگوریتمها وضعیت فعلی سرورها را بررسی کرده و سپس ترافیک را توزیع میکنند. برخی از روشهای رایج عبارتاند از:
- روش Least Connection: موازنهکننده بار بررسی میکند که کدام سرورها کمترین تعداد اتصال فعال را دارند و درخواست جدید را به آنها هدایت میکند.
- روش Weighted Least Connection: در این روش، به سرورها بر اساس توانایی پردازشی آنها وزن داده میشود و ترافیک به سروری که کمترین اتصال فعال را نسبت به ظرفیتش دارد، هدایت میشود.
- روش Least Response Time: این روش ترکیبی از زمان پاسخگویی سرور و تعداد اتصالات فعال است که به منظور ارائه سریعتر خدمات به کار گرفته میشود.
- روش Resource-Based: در این روش، عاملهای نرمافزاری روی سرورها میزان بار فعلی آنها را بررسی کرده و موازنهکننده بار بر اساس این دادهها ترافیک را توزیع میکند.
انواع موازنه بار
موازنه بار را میتوان به سه دسته اصلی تقسیم کرد:
- موازنه بار برنامهای: بر اساس محتویات درخواست، مانند هدرهای HTTP، ترافیک را هدایت میکند.
- موازنه بار شبکهای: بر اساس آدرسهای IP و اطلاعات شبکه، ترافیک را بهینه توزیع میکند.
- موازنه بار جهانی: در چندین سرور توزیعشده جغرافیایی انجام میشود و ترافیک را به سرور نزدیکتر هدایت میکند.
فناوریهای موازنه بار
دو نوع اصلی از موازنهکنندههای بار وجود دارد:
- موازنهکننده بار سختافزاری: دستگاههای فیزیکی که حجم زیادی از ترافیک را پردازش و به چندین سرور هدایت میکنند.
- موازنهکننده بار نرمافزاری: برنامههایی که روی سرورها نصب شده و وظایف موازنه بار را انجام میدهند.
مقایسه موازنه بار سختافزاری و نرمافزاری
موازنه بار سختافزاری نیازمند سرمایهگذاری اولیه و نگهداری مداوم است. در مقابل، موازنه بار نرمافزاری مقیاسپذیری بیشتری دارد، مقرونبهصرفهتر بوده و برای محیطهای ابری مناسبتر است.