متعادل کننده بار – LoadBalancer چیست؟
متعادل کننده بار – Load Balancer
متعادل کننده بار چیست؟
به گفته (ویکی پدیا): متعادل کننده بار به فرآیند توزیع مجموعه ای از وظایف بر روی مجموعه ای از منابع (واحدهای محاسباتی)، با هدف کارآمدتر کردن پردازش کلی آنها اشاره دارد. متعادلسازی بار میتواند زمان پاسخ را بهینه کند و از بارگذاری نابرابر برخی از گرههای محاسباتی در حالی که سایر گرههای محاسباتی بیحرکت هستند، جلوگیری کند.
Load Balancer را می توان به صورت آرایه ای از سرورها اجرا کرد، در صورت نیاز می توان آنها را به صورت خودکار مقیاس بندی کرد و در صورت عدم نیاز آزاد کرد.
- سلامت اهداف را رصد می کند
- با SSL ادغام می شود
- “Elastic” — Load Balancers را می توان به صورت آرایه ای از سرورها اجرا کرد، این ها می توانند در صورت نیاز به صورت خودکار مقیاس شوند و در صورت عدم نیاز آزاد شوند.
چرا متعادل کننده بار – Load Balancer
- مقیاس بندی الاستیک سرورها را می توان در پشت یک متعادل کننده بار انجام داد.
- امنیت – همه ماشینهایی که زیر LB هستند میتوانند در یک شبکه خصوصی باشند. سرورها از اینترنت قطع می شوند و ارتباط از طریق LB (یعنی LB به Application Server) در حال انجام است.
- رمزگذاری و رمزگشایی درخواست
- ایمن سازی درخواست از طریق HTTPS
- توزیع بارهای کاری در چندین رایانه را بهبود می بخشد.
- چندین آدرس IP با یک نام دامنه مرتبط هستند (google.com با IP1، IP2، IP3 مرتبط است). هر زمان که کلاینت بخواهد با استفاده از DNS متصل شود، IP ها بر اساس زمان بندی قبلی داده می شوند
- کارایی – Performance : – محدودیت های فیزیکی وجود دارد که یک کامپیوتر چقدر می تواند این کار را انجام دهد. میلیونها کاربر را فقط میتوان در چندین دستگاه پشتیبانی کرد.
- در دسترس بودن – Availability : خرابی ماشین اتفاق می افتد. ما باید در صورت امکان از تک نقطه های شکست اجتناب کنیم.
-
اقتصاد – Economy : خریدپنج دستگاه کالای کوچک در مقایسه با یک دستگاه بزرگ همیشه ارزان تر است.
-
افزونگی – Redundancy : چند ماشین ظرفیت یکسانی دارند، در صورت خرابی یک ماشین دیگر آماده و بالا هستند، در حالی که در مقیاس عمودی (اگر یک ماشین خراب شود) سیستم از کار افتاده است.
-
رسیدگی به کاربران بیشتر
-
مثال : Ngnix، AmazonELB
Load Balancers چگونه کار می کند؟
- تعریف نام IP/DNS: برای هر برنامه، کار یا وب سایت، ادمین ها یک آدرس IP و/یا نام DNS واحدی را تعیین می کنند که تمام درخواست ها به آن ارسال می شود. سرور متعادل کننده بار با آدرس IP یا نام DNS آن شناسایی می شود.
- پیکربندی سرورهای پشتیبان در LB: ادمین در مرحله بعد آدرس IP همه سرورهای واقعی را که حجم کاری یک برنامه یا کار خاص را به اشتراک می گذارند را در سرور متعادل کننده بار وارد می کند. متعادل کننده بار تنها راه دسترسی به این مجموعه از سرورهای موجود است.
- گسترش: در نهایت، متعادل کننده بار باید راه اندازی شود – یا به عنوان یک پروکسی Proxy، که بین سرورهای برنامه شما و کاربران شما در سراسر جهان قرار می گیرد و تمام ترافیک را می پذیرد یا به عنوان یک gateway ،که یک کاربر را یک بار به یک سرور اختصاص می دهد و سپس تعامل را نادیده می گیرد.
الگوریتم های زمان بندی در Load Balancers
- ROUND ROBIN – درخواست ها را یکی پس از دیگری ارسال کنید.
- WWEIGHTED ROUND ROBIN – که بر اساس محاسبه و ترافیک سرور، وزن ظرفیت به آنها اختصاص داده می شود.و سپس بر اساس وزن سرور، ترافیک با استفاده از الگوریتم Round Robin به سمت آنها هدایت می شود.با این رویکرد، ترافیک بیشتری به ماشینهایی همگرا میشود که میتوانند بار ترافیکی بالاتری را تحمل کنند و در نتیجه از منابع بهینه استفاده کنند.این رویکرد زمانی بسیار مفید است که سرویس در مراکز داده مختلف با ظرفیت های محاسباتی متفاوت مستقر شود. ترافیک بیشتری را می توان به مراکز داده بزرگتر که دارای ماشین های بیشتری هستند هدایت کرد.
-
LEAST CONNECTIONS – درخواست ها را به سروری با کمترین تعداد اتصالات فعال ارسال می کند.
دو رویکرد برای اجرای این وجود دارد –
در مورد اول، فرض بر این است که تمام درخواستها به میزان مساوی از منابع سرور را مصرف میکنند و ترافیک به سمت ماشین هدایت میشود، بر اساس این فرض، کمترین اتصالات باز را دارد. اکنون در این سناریو، این احتمال وجود دارد که دستگاه کمترین باز بودن را داشته باشد اتصالات ممکن است قبلاً درخواستهایی را پردازش کنند که بیشتر انرژی CPU آن را میطلبد. مسیریابی ترافیک بیشتر به این دستگاه ایده خوبی نیست.
در رویکرد دیگر، استفاده از CPU و زمان پردازش درخواست ماشین انتخابی نیز قبل از مسیریابی ترافیک به آن در نظر گرفته می شود. ماشین هایی با زمان پردازش درخواست کمتر، استفاده از CPU و به طور همزمان دارای کمترین اتصالات باز، کاندیدای مناسب برای پردازش درخواست های مشتری آینده هستند.
زمانی که سرور اتصالات طولانی باز کرده باشد، به عنوان مثال، اتصالات مداوم در یک برنامه بازی، رویکرد کمترین اتصال مفید است.
- حداقل زمان – LEAST TIME – درخواست ها را به سرور انتخاب شده توسط فرمولی ارسال می کند که سریع ترین زمان پاسخ و کمترین اتصالات فعال را ترکیب می کند.
- HASH – درخواست ها را بر اساس کلیدی که شما تعریف می کنید، مانند آدرس IP مشتری یا URL درخواست، توزیع می کند. هش کردن IP منبع تضمین می کند که درخواست مشتری با یک IP خاص همیشه به همان سرور هدایت می شود. این امر تجربه کاربری بهتری را تسهیل می کند زیرا سرور قبلاً درخواست های اولیه مشتری را پردازش کرده و داده های مشتری را در حافظه محلی خود نگه می دارد. نیازی نیست که داده های جلسه مشتری را از حافظه جلسه کلاستر واکشی کند و سپس درخواست را پردازش کند. این باعث کاهش تاخیر می شود. هش کردن IP سرویس گیرنده همچنین به مشتری امکان می دهد در صورت قطع شدن اتصال، ارتباط خود را با همان سروری که درخواست آن را پردازش می کرد، دوباره برقرار کند. ← هش کردن یک URL تضمین می کند که درخواست با آن URL همیشه به حافظه پنهان خاصی که قبلاً داده روی آن وجود دارد، برخورد می کند. این برای اطمینان از عدم وجود حافظه پنهان است. ← این همچنین از نیاز به تکثیر داده ها در هر کش جلوگیری می کند و بنابراین روش کارآمدتری برای پیاده سازی کش است.
- IP HASH: (فقط HTTP) – درخواست ها را بر اساس سه اکتت اول آدرس IP مشتری توزیع می کند.
- RANDOM WITH 2 CHOICES – دو سرور را به صورت تصادفی انتخاب می کند و درخواست را به سروری که با اعمال الگوریتم حداقل اتصالات انتخاب شده است ارسال می کند.
- DNS Round Robin Load Balancing؟ – بله با راند رابین فرق دارد. → نگاشت چندین سرور (IP-1، IP-2، IP-3) به یک نام میزبان، به طوری که وقتی کاربران از foo.example.com بازدید می کنند چندین سرور برای رسیدگی به درخواست های آنها در دسترس باشد. تعادل بار مبتنی بر DNS نوع خاصی از متعادلسازی بار است که از آن استفاده میکند.
DNS برای توزیع ترافیک در چندین سرور. این کار را با ارائه آدرس های IP مختلف در پاسخ به پرس و جوهای DNS انجام می دهد. متعادلکنندههای بار میتوانند از روشها یا قوانین مختلفی برای انتخاب آدرس IP برای اشتراکگذاری در پاسخ به درخواست DNS استفاده کنند.
- نمایندگی DNS زیردامنه با Round Robin: ← وقتی چندین زیردامنه (hr.example.com، payroll.example.com) در داخل دامنه اصلی (example.com) داریم. زیر دامنه ها سرورهای نام خود را دارند. اکنون هنگامی که درخواستی برای منبعی در داخل سرور نام اصلی hr.example.com (example.com) وارد می شود، به سرورهای نام زیر دامنه ها ارسال می شود. این امر زمان پاسخگویی را بهبود می بخشد، زیرا پروتکل DNS به طور خودکار سریعترین پیوندها را جستجو می کند.
- Geographic – ترافیک برنامه ها را در مراکز داده در مکان های مختلف برای حداکثر کارایی و امنیت توزیع می کند. → در حالی که تعادل بار محلی در یک مرکز داده واحد اتفاق می افتد، تعادل بار جغرافیایی از چندین مرکز داده در بسیاری از مکان ها استفاده می کند.
- تعادل بار تصادفی سمت مشتری: ← لیستی از IP های سرور را به مشتری تحویل دهید و سپس از مشتری بخواهید IP را به طور تصادفی از لیست هر اتصال انتخاب کند. این اساساً به همه مشتریانی که بارهای مشابهی تولید می کنند متکی است.
-
متعادل کننده بار سمت سرور: ← متعادل کننده بار به یک پورت متصل می شود و به آن گوش می دهد. درخواست را به همه سرورهای پشتیبان، هر کدام که اول پاسخ دهد، فوروارد می کند. این درخواست را برآورده می کند.
- IP ADDRESS-BASED : اگر درخواستی از آدرس IP در محدوده ای از (x تا y) بسته فوروارد به سرور پشتیبان-1 باشد.
-
LAYER 5 AWARE: → این بار متعادل کننده ها از پروتکل لایه 5 آگاه هستند (به عنوان مثال: HTTP). آنها می توانند به سربرگ HTTP نگاه کنند و تصمیم بگیرند که با بسته چه کنند که آیا آن را به سرور-1 یا 2 ارسال کنند.
موضوعات مرتبط
تداوم جلسه – Session Persistence
اطلاعات مربوط به جلسه کاربر اغلب به صورت محلی در مرورگر ذخیره می شود. به عنوان مثال، در یک برنامه سبد خرید، اقلام موجود در سبد خرید کاربر ممکن است در سطح مرورگر ذخیره شوند تا زمانی که کاربر برای خرید آنها آماده شود. تغییر اینکه کدام سرور در میانه جلسه خرید از آن مشتری درخواست دریافت می کند می تواند باعث مشکلات عملکرد یا شکست کامل تراکنش شود. در چنین مواردی، ضروری است که تمام درخواست های یک کلاینت در طول مدت جلسه به همان سرور ارسال شود. این به عنوان ماندگاری جلسه شناخته می شود. بهترین متعادل کننده های بار می توانند در صورت نیاز، تداوم جلسه را مدیریت کنند. یکی دیگر از موارد استفاده برای ماندگاری جلسه زمانی است که یک سرور بالادستی اطلاعات درخواست شده توسط کاربر را در حافظه پنهان خود ذخیره می کند تا عملکرد را افزایش دهد. تغییر سرورها باعث می شود که آن اطلاعات برای بار دوم واکشی شود و عملکرد ناکارآمدی ایجاد کند.
پیکربندی دینامیک گروه های سرور
بسیاری از برنامه های کاربردی که به سرعت در حال تغییر هستند نیاز به افزودن یا حذف سرورهای جدید به طور مداوم دارند. این امر در محیطهایی مانند سرویسهای وب آمازون (AWS) Elastic Compute Cloud (EC2) رایج است، که کاربران را قادر میسازد فقط برای ظرفیت محاسباتی که واقعاً استفاده میکنند بپردازند، در حالی که در عین حال اطمینان میدهند که ظرفیت در افزایش ترافیک پاسخ افزایش مییابد. در چنین محیطهایی بسیار کمک میکند که متعادلکننده بار بتواند به صورت پویا سرورها را از گروه اضافه یا حذف کند بدون اینکه اتصالات موجود را قطع کند.
تعادل بار سخت افزار در مقابل نرم افزار
متعادل کننده های بار معمولاً در دو نوع ارائه می شوند: مبتنی بر سخت افزار و مبتنی بر نرم افزار. فروشندگان راه حل های مبتنی بر سخت افزار، نرم افزار اختصاصی را روی دستگاهی که ارائه می کنند بارگذاری می کنند، که اغلب از پردازنده های تخصصی استفاده می کند. برای مقابله با افزایش ترافیک در وب سایت خود، باید دستگاه های بیشتر یا بزرگتری را از فروشنده خریداری کنید. راهحلهای نرمافزاری عموماً بر روی سختافزار کالا اجرا میشوند و آنها را ارزانتر و انعطافپذیرتر میکند. شما می توانید نرم افزار را بر روی سخت افزار مورد نظر خود یا در محیط های ابری مانند AWS EC2 نصب کنید.
اتصال سیستم باز هفت لایه (OSI)
تعادل بار را می توان در لایه های مختلف در مدل مرجع اتصال سیستم های باز (OSI) برای شبکه انجام داد. متعادلسازی بار لایه ۷ نسبت به متعادلسازی بار لایه ۴ مبتنی بر بستهها به CPU فشردهتر است، اما به ندرت باعث کاهش عملکرد در یک سرور مدرن میشود. متعادلسازی بار لایه 7 به متعادلکننده بار این امکان را میدهد تا تصمیمات متعادلتر بار را اتخاذ کند و بهینهسازیها و تغییرات را در محتوا اعمال کند.
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.