Load Balancer
«نسخه کامل و جامع این مقاله به همراه جزئیات بیشتر، در imaniNova.ir منتشر شده است. در ادامه قطعه ای از این مقاله را مشاهده می کنید.»
وظیفه اصلی لود بالانسر، دریافت تمامی درخواست های ورودی از سمت کاربران و توزیع متوازن آن ها میان سرورهای پشتی (Backend Servers) است. این کار به نحوی انجام می شود که هیچ سروری زیر بار شدید دچار افت کارایی یا سقوط (Crash) نشود و تمامی منابع پردازشی سیستم به بهینه ترین شکل ممکن مورد استفاده قرار گیرند. علاوه بر توزیع بار، لود بالانسر پایش سلامت سرورها، مدیریت رمزنگاری ترافیک و هدایت هوشمند داده ها را نیز بر عهده دارد تا سیستم همواره دردسترس و پایدار بماند.
لود بالانسر (Load Balancer) یا توزیع کننده بار، یک افزار سخت افزاری، نرم افزاری یا سرویس ابری است که به عنوان یک نقطه ی دسترسی واحد (Single Entry Point) و واسط میان کاربران و مجموعه ای از سرورها قرار می گیرد.
انواع لود بالانسر بر اساس لایه های مدل OSIدر مدل ۷ لایه ای شبکه (OSI Model)، لود بالانسرها عمدتا در دو لایه کار می کنند: لایه ۴ (Transport) و لایه ۷ (Application). درک تفاوت های این دو لایه برای معماران سیستم فوق العاده حیاتی است، چرا که انتخاب اشتباه می تواند منجر به افت شدید کارایی یا عدم امکان پیاده سازی ویژگی های امنیتی شود.
لود بالانسینگ لایه ۴ (Layer 4 - Transport Layer)لود بالانسینگ لایه ۴ در سطحی پایین تر از شبکه عمل می کند و تنها با پروتکل های انتقال مانند TCP و UDP سرکار دارد. در این لایه، لود بالانسر اصطلاحا "کور" نسبت به محتوای پیام عمل می کند؛ یعنی نمی داند کدهای داخل بسته HTTP چیست، چه پاسخی قرار است داده شود یا چه کاربر با چه هویت ارسال کننده ای پشت درخواست است.
نحوه تصمیم گیری و عملکرد:
لود بالانسر لایه ۴ تصمیمات مسیریابی خود را صرفا بر اساس اطلاعات موجود در هدر بسته های شبکه انجام می دهد:
- آدرس IP مبدا و مقصد
- پورت TCP/UDP مبدا و مقصد
وقتی یک بسته شبکه به لود بالانسر لایه ۴ می رسد، لود بالانسر بدون رمزگشایی یا خواندن محتوای بسته، آدرس IP مقصد بسته را به آدرس یکی از سرورهای پشتی تغییر داده (عملیات NAT) و بسته را مستقیما عبور می دهد.
مزایا و کاربردها:
- سرعت و Efficiency بی نظیر: از آنجایی که لود بالانسر نیازی به باز کردن بسته، رمزگشایی SSL یا آنالیز هدرهای HTTP ندارد، بار محاسباتی فوق العاده کمی روی CPU می گذارد و می تواند میلیون ها بسته را در ثانیه هدایت کند.
- عدم وابستگی به پروتکل (Protocol Agnostic): شما می توانید از این نوع لود بالانسر برای هر نوع ترافیکی استفاده کنید؛ از پایگاه های داده (مثل MySQL یا PostgreSQL) گرفته تا سرویس های بازی های آنلاین، DNS، پروتکل های سفارشی IoT و ترافیک VoIP.
لود بالانسینگ لایه ۷ در بالاترین لایه مدل OSI قرار دارد و به طور کامل با پروتکل های لایه کاربرد مانند HTTP، HTTPS، HTTP/2، HTTP/3 و WebSocket یکپارچه است. برخلاف لایه ۴، این لود بالانسر محتوای کامل درخواست را درک و آنالیز می کند.
نحوه تصمیم گیری و عملکرد:
در این روش، لود بالانسر ابتدا اتصال TCP با کاربر را کاملا برقرار می سازد، بسته را باز کرده، ترافیک SSL را رمزگشایی می کند و تمامی اجزای درخواست HTTP را می خواند. سپس بر اساس محتوای داخل درخواست، تصمیم می گیرد آن را به کدام سرور بفرستد.
امکانات هوشمندی که لایه ۷ ارائه می دهد شامل موارد زیر است:
- مسیریابی بر اساس URL (URL-based Routing): برای مثال، درخواست های مربوط به
/api/v1را به سرورهای مخصوص پردازش API، درخواست های/imagesرا به سرورهای ذخیره سازی فایل و درخواست های عادی را به سرورهای وب بفرستد. - مسیریابی بر اساس Header یا Cookie: هدایت کاربران موبایل (با تشخیص User-Agent) به سرورهای بهینه شده برای موبایل، یا هدایت کاربران دارای کوکی های خاص (مثلا کاربران VIP) به سرورهای قدرتمندتر.
- خاتمه رمزنگاری SSL/TLS: رمزگشایی ترافیک HTTPS روی لود بالانسر و ارسال ترافیک به صورت ساده و سبک در شبکه داخلی برای سرورهای اصلی.
مزایا و چالش ها:
این لود بالانسرها انعطاف پذیری و قدرت مانور بی نظیری به شما می دهند و قابلیت های امنیتی فراوانی مثل WAF (دیوار آتش وب) را پشتیبانی می کنند. اما در مقابل، به دلیل پردازش سنگین متون و رمزگشایی داده ها، نیازمند CPU و حافظه رم بسیار بیشتری نسبت به لایه ۴ هستند.
ادامه مقاله در