لود بالانسینگ چیست و چگونه کار میکند؟ | انواع آن
تا دو دهه پیش وبسایتها با دو مشکل عمده مواجه بودند: مقیاسپذیری (محدودیت چند کلاینت برای دسترسی همزمان به چند سرور) و دسترسی (خرابیهای طولانی). در دنیای امروز کاربر سرعت میخواهد. به محض آنکه احساس کند وقتش را تلف کردهاید، بیرودربایستی صفحه را میبندد و سراغ سایت دیگری میرود. از طرفی تاخیرهای طولانی بهرهوری کارکنان داخلی کسبوکار را تا حد زیادی کاهش میدهد. راه حلی که معرفی شد لود بالانسینگ بود. در این مقاله همراه ما باشید تا ببینیم لود بالانسینگ چیست و چطور کار میکند.
لود بالانسینگ چیست؟

قبل از هرچیز ببینیم لود بالانسینگ چیست و چه مفهومی دارد.
تمرکز لود بالانسینگ (Load Balancing) روی عیبیابی توزیع ترافیک روی چند سرور است. با وجود صدها درخواست کلاینت در هر دقیقه، سرورها نمیتوانند همیشه اطلاعات موردنیاز کاربر را بهسرعت و با کیفیت بالا در اختیار او بگذارند. از طرفی ذرهای تاخیر برای کاربر پذیرفته نیست و اگر احساس ناامیدی کند، خیلی زود صفحه را میبندد و سراغ سایت دیگری میرود.
اینجاست که مفهوم لود بالانسینگ وارد عمل میشود و بهعنوان کارگردان یک مجموعه بزرگ، کل ترافیک را به سرورهای خاصی در «مزرعه سرور» یا «استخر سرور» هدایت میکند. به این ترتیب با جلوگیری از حمل بار بیش از حد روی هر سرور، دسترسی و پاسخگویی برنامه و شبکه بهینه خواهد شد.
برای مطالعه بیشتر latency چیست؟ همه چیز درباره تاخیر شبکه را پیشنهاد می کنیم.
لود بالانسینگ چهکار میکند؟
اگر بخواهیم عملکرد لود بالانسینگ را در یک جمله خلاصه کنیم، میتوانیم بگوییم کل بار ترافیک شبکه و فشار کاری را بین چند سرور بکاند توزیع میکند تا هیچ سروری اضافه بار نداشته باشد. چه نتیجهای دارد؟ سرعت پاسخگویی برنامهها بیشتر و تجربه کاربری به مراتب بهتر میشود. اما وظایف لود بالانسینگ چیست؟
لود بالانسر در یک دیتاسنتر یا ابر عمومی قرار میگیرد و این مسئولیتها را بهعهده دارد:
- درخواستهای دریافتی بین سرور و کاربر نهایی را مدیریت میکند.
- سلامت سرورها را مدام بررسی میکند تا از توانایی آنها برای رسیدگی به درخواستها مطمئن شود.
- در صورت لزوم سرورهای ناسالم حذف و در صورت بازیابی مجددا به مزرعه سرور اضافه میشوند.
- برخی از آنها برای مقابله با افزایش تقاضا، سرورهای کاربردی مجازی میسازند.
- برای بهبود عملکرد و امنیت در کنترلرهای تحویل برنامه (ADC) گنجانده میشوند.
- برخی از جنبههای لود بالانسینگ به پایداری بیشتر برنامهها کمک میکنند.
بهطور کلی از مهمترین وظایف این تکنولوژی میتوان به مدیریت افزایش ترافیک، اطمینان از حداقل زمان پاسخگویی و عملکرد و قابلیت اطمینان منابع محاسباتی اشاره کرد.
چند نوع لود بالانسر داریم؟
انواع خاصی لود بالانسر داریم که میتوان در شرایط مختلف برای شبکه در نظر گرفت. برای مثال ممکن است برای پایگاه داده رابطهای خود به لود بالانسینگ SQL Server، برای عیبیابی در چندین موقعیت جغرافیایی به لود بالانسینگ جهانی یا برای اطمینان از عملکرد نام دامنه به لود بالانسینگ سرور DNS احتیاج داشته باشید. در ادامه با انواع لود بالانسینگ آشنا میشویم.
۱. لود بالانسینگ شبکه (Network Load Balancing)
این نوع از لود بالانسینگ همانطور که از نامش پیداست از اطلاعات لایه شبکه برای تصمیمگیری در مورد ارسال ترافیک شبکه استفاده میکند. در این روش لود بالانسینگ لایه ۴ اتفاق میافتد که برای مدیریت همه اشکال ترافیک TCP/UDP طراحی شده و سریعترین راهحل ممکن است. البته این روش در مورد توزیع ترافیک بین سرورها عملکرد چندان خوبی ندارد.
۲. لود بالانسینگ HTTP یا HTTPS
این یکی از قدیمیترین اشکال لود بالانسینگ محسوب میشود که روی لایه ۷ (لایه کاربردی) کار میکند و از انعطافپذیری بالایی برخوردار است. به کمک این مدل میتوان تصمیمات توزیع را بر اساس اطلاعات یک آدرس HTTP اتخاذ کرد.
۳. تعادل بار داخلی (Internal Load Balancing)
این مورد تقریبا مشابه لود بالانسینگ شبکه است؛ با این تفاوت که میتوان از آن برای متعادلسازی زیرساختهای داخلی استفاده کرد.
رایانش مه چیست؟ برای اطلاعات بیشتر مقاله مورد نظر را مطالعه نمایید.
۴. لود بالانسر اپلیکیشن (Application Load Balancer)
Application Load Balancer در لایه برنامه یعنی لایه هفتم مدل OSI عمل میکند. این لود بالانسر کنترل میکند که کدام درخواستهای کلاینت توسط برنامههای شما پردازش شوند. این قابلیت به شما امکان میدهد تا به درخواستهای ورودی با کدهای پاسخ خطای HTTP و پیامهای خطای سفارشی از خود لود بالانسر، بدون ارسال درخواست به برنامه پاسخ دهید. به عبارت دیگر لود بالانسر اپلیکیشن میتواند قبل از رسیدن درخواست به سرورهای برنامه، برخی از درخواستها را بررسی و در صورت لزوم، پاسخ مناسب را (مانند خطای 404 یا 503) بدون درگیر کردن برنامه اصلی ارسال کند. این کار مزایای بسیاری دارد؛ از جمله جلوگیری از دسترسی به بخشهای خاصی از برنامه، ارائه پیامهای خطای سفارشی برای درخواستهای نامعتبر و حتی مدیریت ترافیک در زمانهای شلوغی و جلوگیری از overload شدن سرورها. با این کار، برنامه اصلی میتواند روی پردازش درخواستهای معتبر و مهم تمرکز کند و از منابع به شکل بهینهتری استفاده نماید.
۵. لود بالانسر سرور جهانی (Global)
لود بالانسر سرور جهانی یا GSLB روشی برای توزیع ترافیک اینترنت بین تعداد زیادی سرور متصل است که در سراسر جهان پراکنده شدهاند. GSLB با استفاده از روشهای مختلفی مانند DNS، مسیریابی جغرافیایی و پراکسی، ترافیک را بین سرورها توزیع میکند. هنگامی که یک کاربر درخواستی را به یک وبسایت ارسال میکند، GSLB میتواند با توجه به موقعیت جغرافیایی کاربر، او را به نزدیکترین سرور هدایت کند. مهمترین مزایای GSLB عبارتند از افزایش قابلیت اطمینان و کاهش تأخیر.
فروشگاهی را تصور کنید که کفش را از طریق پست برای مشتریان در سراسر جهان میفروشد. اگر این فروشگاه فقط در یک مکان فعالیت کند، مدت زمان بسیار زیادی طول میکشد تا مشتریان دوردست سفارشات خود را ثبت کنند و کفشهای خود را دریافت نمایند. در طول فصلهای شلوغ خرید، فروشگاه ممکن است با حجم زیادی از سفارشات overload شود و توانایی خود را برای رسیدگی سریع به سفارشات همه مشتریان از دست بدهد. حالا تصور کنید که فروشگاه کفش چندین شعبه دیگر را در سراسر جهان باز میکند. این بدان معناست که مشتریان میتوانند کفشها را از یک شعبه نزدیک سفارش دهند که هم زمان ارسال را کاهش میدهد و هم احتمال overload شدن یک فروشگاه با سفارشات را کم میکند. GSLB دقیقا همین کار را برای وبسایتها و سرویسها انجام میدهد.
۶. لود بالانسر الاستیک (Elastic Load Balancers)
این نوع لود بالانسر نسبت به سایر انواع لود بالانسرها پیچیدگی بیشتری دارد. لود بالانسر الاستیک به طور خاص برای محیطهای محاسبات ابری پویا طراحی شده است و با قابلیت مقیاسپذیری خودکار به اپراتورها کمک میکند تا ترافیک برنامههای خود را با توجه به تقاضای لحظهای تنظیم کنند. لود بالانسر الاستیک (ELB) به صورت خودکار ترافیک ورودی برنامههای شما را بین چندین سرور توزیع میکند. این کار باعث افزایش دسترسپذیری، تحمل خطا و مقیاسپذیری برنامههای شما میشود. لود بالانسر الاستیک میتواند بر اساس نوع ترافیک (HTTP، HTTPS، TCP و UDP) و همچنین محتوای درخواستها، ترافیک را توزیع کند. این سرویس به صورت خودکار سرورهای سالم را شناسایی کرده و ترافیک را به آنها هدایت میکند و در صورت بروز مشکل در یک سرور، ترافیک را به سایر سرورها منتقل میکند. همچنین قادر است به صورت خودکار با افزایش یا کاهش ترافیک، تعداد سرورها را تنظیم کند. این ویژگی به شما کمک میکند تا منابع خود را به صورت بهینه مدیریت کنید و هزینههای خود را کاهش دهید.
لود بالانسر از چه چیزهایی پشتیبانی می کند
لود بالانسر یک ابزار کلیدی برای افزایش دسترسپذیری، مقیاسپذیری و امنیت برنامههای تحت وب است. این ابزار که به عنوان یک پروکسی معکوس نیز شناخته میشود، ترافیک ورودی را بین سرورهای مختلف توزیع میکند و از این طریق از overload شدن سرورها و کاهش سرعت و کارایی برنامه جلوگیری میکند. مهمترین قابلیتهایی که لود بالانسر از آنها پشتیبانی میکند، عبارتند از:
- توزیع هوشمند ترافیک: لود بالانسر با توزیع ترافیک بین سرورهای مختلف از overload شدن هر یک از سرورها جلوگیری میکند و عملکرد برنامه را بهبود میبخشد.
- تشخیص و مدیریت خرابی سرور: در صورت بروز مشکل در هر یک از سرورها، لود بالانسر به صورت خودکار ترافیک را به سرورهای سالم دیگر هدایت میکند و از اختلال در سرویسدهی جلوگیری مینماید.
- نگهداری آسان سرور: با استفاده از لود بالانسر میتوان سرورها را به راحتی از مدار خارج و یا به آن اضافه کرد؛ بدون آنکه خللی در عملکرد برنامه ایجاد شود.
- بازیابی خودکار: لود بالانسر به صورت خودکار سایت را از disaster یا فاجعههای احتمالی بازیابی میکند تا از تداوم سرویسدهی اطمینان حاصل شود.
- افزایش امنیت: لود بالانسر با فیلتر کردن ترافیک ورودی و مسدود کردن محتوای مخرب به افزایش امنیت برنامه کمک میکند.
- مقیاسپذیری آسان: لود بالانسر امکان افزایش یا کاهش تعداد سرورها را با توجه به نیاز برنامه فراهم میکند و از این طریق به راحتی میتوان برنامه را مقیاسپذیر کرد.
تفاوت لود بالانسر نرم افزاری و لود بالانسر سخت افزاری
یکی از ویژگیهای لود بالانسرها این است که هم بهعنوان لوازم سخت افزاری و هم بهعنوان یک ابزار نرم افزاری تعریف میشوند. اما تفاوت این دو لود بالانسینگ چیست؟
- لوازم سخت افزاری نرم افزارهای اختصاصی اجرا میکنند که برای کارکردن روی CPU های سفارشی بهینه شدهاند. در این حالت هرچه ترافیک بیشتر میشود، وسایل لود بالانسینگ بیشتری برای کنترل حجم به سرور اضافه میشود.
- لود بالانسرهای نرمافزاری معمولا روی سختافزار استاندارد x86 اینتل ارزانتر اجرا میشوند. با نصب نرم افزار در محیطهای ابری مثل AWS EC2 نیاز به وجود سخت افزارهای فیزیکی از بین میرود.
منظور از لود بالانسر مجازی چیست؟
لود بالانسر مجازی یک برنامه نرم افزاری است که با محیطهای SDN کار میکند؛ صرفنظر از اینکه ابر خصوصی، عمومی یا ترکیبی (چند ابری) باشند و نسبت به راه حلهای سخت افزاری هزینه کمتری دارد. البته عملکرد لود بالانسر مجازی بهطور کامل محدود به عملکرد سخت افزار زیرساخت است.
تکنیکهای مورد استفاده در لود بالانسیگ چیست؟

اما بپردازیم به اینکه تکنیکهای مورد استفاده در لود بالانسینگ چیست و عملا چطور کار میکند. هر لود بالانسر برای آنکه سرور یا مزرعه سرور مقصد برای دریافت درخواست کاربر را انتخاب کند، به معیارها و الگوریتمهای مختلفی متکی است. برخی از آنها عبارتاند از:
۱. روش Round Robin
در این روش درخواستهای کلاینت به صورت چرخشی در سرورهای برنامه توزیع میشود. برای مثال اگر سه سرور برنامه داشته باشید، اولین درخواست به اولین سرور، دومین درخواست به دومین سرور و سومین درخواست به سومین سرور فرستاده میشود. با این فرض که همه سرورها ویژگیهای دسترسی، محاسباتی و مدیریتی یکسان دارند.
۲. روش Weighted Round Robin
در این مدل Round Robin ویژگیهای سرور نیز در نظر گرفته میشود. هر سرور بر اساس قابلیتهای مدیریتی خود وزنی دارد که نشانگر تعداد اتصالات فعال آن است. هرچه این وزن بیشتر باشد، سرور درخواستهای بیشتری دریافت خواهد کرد.
۳. روش Least Connections
و اما مدل لود Least Connections بالانسینگ چیست؟ این یکی از تکنیکهای پویاست که تعداد اتصالهای فعال را در نظر میگیرد و درخواستهای کلاینت را به سروری با کمترین تعداد اتصالات فعال هدایت میکند.
۴. روش Weighted Least Connections
این روش نیز بر اساس متد Least Connections طراحی شده و بر اساس ظرفیت اتصال سرورها، وزنی به آنها اختصاص میدهد که معیار انتخاب آن محسوب میشود. به این ترتیب میزان ترافیک اختصاصیافته به هر سرور تعیین میشود.
۵. روش Source IP Hash
در این تکنیک با استفاده از آدرس IP مبدا و مقصد کلاینت و سرور یک هش منحصربهفرد ایجاد میشود. سپس هر کلاینت با توجه به این کلید به سرور خاصی متصل خواهد شد. حتی اگر کلاینت جلسه ارتباطی را قطع کند، امکان تولید مجدد آن وجود دارد و درخواست کلاینت به همان سروری هدایت میشود که قبلاً از آن استفاده میکرد.
۶. روش Least Response Time
در این تکنیک سروری انتخاب میشود که در حال حاضر کمترین اتصال فعال و کمترین میانگین زمان پاسخ را داشته باشد.
۷. روش Least Pending Request
درخواستهای معلق کلاینتها نظارت میشوند و بین سرورهای در دسترس توزیع میشوند.
۸. روش Resource Based (Adaptive)
در این تکنیک باید عاملی روی سرور نصب شود که میزان ترافیک فعلی را به لود بالانسر گزارش دهد. این عامل وضعیت دسترسی سرورها و منابع را نظارت میکند تا لود بالانسر راحتتر بتواند تصمیم بگیرد.
۹. روش Fixed Weighting
در تکنیک وزنگذاری ثابت مدیر بر اساس معیارهای انتخابی خود وزنی به هر سرور میدهد تا قابلیتهای مدیریت ترافیک آنها را تعیین کند. سروری که بالاترین وزن را داشته باشد، بیشترین ترافیک را دریافت میکند و اگر از کار بیافتد، ترافیک به سرور بعدی با بالاترین وزن هدایت میشود.
۱۰. روش Least Bandwidth
و آخرین تکنیکی که معرفی میکنیم حداقل پهنای باند است که در آن لود بالانسر ترافیک برنامه را بر حسب مگابیت (Mbps) در ثانیه اندازهگیری کرده و درخواستها را به سروری با کمترین مقدار مگابیت در ثانیه ارسال میکند.
مطالعه مقاله تجهیزات امنیتی شبکه از دست ندهید.
مزیتهای لود بالانسینگ چیست؟
اکنون که تقریبا با این مفهوم آشنا شدهایم و کارکردش را میشناسیم، بیایید با فواید استفاده از آن آشنا شویم و ببینیم مزیتهای لود بالانسینگ چیست.
- مقیاسپذیری (Scalability): لود بالانسر فشار کار را بهگونهای یکنواخت روی سرورهای موجود پخش کرده و با این کار مقیاسپذیری بیشتری فراهم میکند.
- افزونگی (Redundancy): ترافیک برنامهها به دو یا چند سرور ارسال میشوند؛ این یعنی حتی اگر یکی از سرورها از کار بیافتد، لود بالانسر کاملا خودکار ترافیک را به سرورهای دیگر منتقل میکند.
- انعطافپذیری (Flexibility): با وجود لود بالانسینگ همیشه یک سرور برای دریافت بارهای برنامههای مختلف در دسترس است. به این ترتیب نگهداری و مدیریت باقی سرورها با انعطافپذیری بیشتری انجام میشود.
- امنیت (Security): از دیگر مزیتهای عالی لود بالانسینگ میتوان به جلوگیری از حملات انکار سرویس (DDoS) اشاره کرد. با لود بالانسینگ میتوان ترافیک شبکه و برنامه را به یک سرور دیگر آفلود کرد و این کار از ترافیک در برابر حملات سایبری خطرناک محافظت میکند.
- تداوم جلسه (Session Persistence): منظور از تداوم جلسه اطمینان از ارسال تمام دادههای کاربر در طول سشن به سرور است. هرگونه تغییر سرور در میانه راه مشکلات عملکردی و عدم ذخیره دادهها را به همراه خواهد داشت. در حالی که یکی از بزرگترین مزیتهای لود بالانسینگ توانایی مدیریت حجم زیادی از دادههای ذخیره شده است.
- لود بالانیسنگ جهانی: امکان پیادهسازی لود بالانسینگ در مقیاس جهانی یکی از قابلیتهای پرکاربرد این تکنولوژی است که میتوان به کمک آن از سرورها در موقعیتهای جغرافیایی مختلف استفاده کرد. قبول کنیم یا نه، هر روز شرکتهای بیشتری در پی راهی برای استقرار برنامههای کاربردی مبتنی بر ابر خود در مراکز داده و ابرهای عمومی (Public Cloud) هستند.
چند نکته مهم برای بهینهسازی لود بالانسینگ
برای آنکه مطمئن شوید برنامه وب به بهترین شکل ممکن با لود بالانسینگ اجرا میشود، نکات زیر را برای بهینهسازی مدنظر داشته باشید:
- بهینه سازی لایه شبکه و برنامه: تکنیکهای لود بالانسر تصمیمات خود را بر اساس لایهای مقصد ترافیک اتخاد میکنند. لود بالانسینگ لایه L4 سریعتر از L7 مسیریابی میشود. در حالی که عملکرد لود بالانسینگ لایه L7 بهتر است. این یعنی برای استفاده بهینه از این تکنولوژی، ابتدا باید بدانید تفاوت انواع لود بالانسینگ چیست.
- تداوم جلسه: برای آنکه از مزیت تداوم جلسه برخوردار شوید، تکنیک لود بالانسینگ Least Connection با قابلیت ذخیره دادههای یک جلسه در حافظه پنهان، عملکرد بهتری نشان میدهند.
- رمزگشایی SSL: این فرآیند رمزگشایی ترافیک، تهدیدات ورودی به برنامهها و همچنین خروجی از کاربران به اینترنت را شناسایی میکند.
- لود بالانسینگ DNS: سیستم DNS هر بار که با تکنیک round-robin به درخواست کلاینت پاسخ میدهد، یک نسخه متفاوت از لیست آدرس IP ها ارسال میکند. درخواستهای DNS به طور یکنواخت بین سرورهای مختلف توزیع میشود تا بار کلی را مدیریت کند.
کلام آخر
لود بالانسینگ فرایندی است که در آن حجم ترافیک و فشار کاری روی چند سرور تقسیم میشود تا با جلوگیری از اوردلود شدن سرورها، سرعت و کارایی آنها را تضمین کند. توزیع درخواستهای کاربران میان سرورها کمک میکند پاسخها بهموقع ارسال شوند و افت سرعت به حداقل برسد.
بهعنوان مدیر شبکه، پلتفرمهای نظارتی متعددی وجود دارند که صحت عملکرد لود بالانسینگ را به شما نشان میدهند. با استفاده از این پلتفرمهای قدرتمند، بینشهای دقیق و لحظهای از کل زیرساخت شبکه در اختیار دارید تا هر لحظه مشکلات مربوط به لود بالانسینگ را شناسایی و حل کنید.
امیدواریم بعد از مطالعه این مقاله کاملا فهمیده باشید که لود بالانسینگ چیست و چطور کار میکند و اگر شما عزیزان اطلاعات بیشتری درباره این مفهوم شبکه دارید، منتظر شنیدن نظرات ارزشمند شما هستیم.
سوالات متداول
لود بالانسر (Load Balancer) یک ابزار سختافزاری یا نرمافزاری است که ترافیک ورودی را بین چندین سرور توزیع میکند تا عملکرد بهینه و پایداری سرویسها حفظ شود.
لود بالانسینگ (Load Balancing) به فرایند توزیع هوشمندانه درخواستهای کاربران بین چندین سرور برای افزایش کارایی، پایداری و کاهش فشار روی یک سرور خاص گفته میشود.
لود (Load) به مقدار ترافیک، پردازش یا درخواستهایی گفته میشود که به یک سرور یا سیستم وارد میشود و مدیریت صحیح آن برای جلوگیری از افت عملکرد ضروری است.
بله، برخی از لود بالانسرها دارای قابلیتهای امنیتی مانند محافظت در برابر حملات DDoS، SSL Offloading و فایروال داخلی هستند که امنیت سرورها را بهبود میبخشند.
دیدگاهتان را بنویسید