Load Balancing برای بهبود عملکرد نرم افزار

چهارشنبه 20 خرداد 1394

Load balancing یعنی توزیع پردازش و فعالیتهای ارتباطی به طور مساوی بر روی سروهای اصلی شبکه‌های کامپیوتری به صورتی که بر روی هیچ سرور واحدی بار پردازشی بیش از حد مجاز اعمال نگردد بدین صورت از اعمال فشار پردازش بر روی یک سرور جلوگیری می‌شود.

فرض کنید که در حال کار بر روی برنامه سازمانی هستیم که بر پایه مشتری مداری می باشد . ما به سایتی که همیشه آنلاین ، پاسخگو و بسیار سریع باشد نیاز داریم . ممکن است فکر کنید این کار بسیار آسان می باشد و نگرانی در مورد نیاز های غیر کاربردی زمانی که به معماری می اندیشیم وجود ندارد . این یک تصور اشتباه است و دلیل آن را خواهیم دید.

بر اساس افکار عمومی ، در آغاز پروژه معمولا نیاز های غیر کاربردی نادیده گرفته می شوند .  مسئله مشترک این است که مشتری درخواست گسترش سایت تحت عنوان Load-Balancing بعد از UAT را میدهد و درخواست شروع به بدرفتاری می کند . به زودی دلایل و راه حل ها را خواهیم دید .

Load Balancing

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

در Load-Balancing، سرورهای چندگانه که پشت Load-Balancer هستند را گسترش می دهیم . بنابراین اگر 4 سرور در محیط Load-balanced داشته باشید ، درحالت ایده آل درخواست خود را روی 4 سیستم گسترش می دهید.به این ترتیب، Load-Balancer استفاده از همه سرورها بطور مساوی و دسترسی به عملکرد فوق العاده بیش از محیط های قدیمی تضمین می کند .

 

ملاحظات معماری
قبل از تصمیم گیری،به بررسی در طراحی وبسایت نیاز داریم.برای این منظور،در درجه اول به مسائلی که براساس محیط های استقرار Load-balancing گسترش یافته اند، توجه می کنیم . از آنجا که در حال حاضر سرورهای چندگانه در معرض دید قرار دارند ، همگام سازی session ها درصورت نیاز چگونه انجام خواهد شد ؟ براحتی می توانیم یک session در SQL Server یا به روش out proc ذخیره کنیم. زمانی که میگوییم بصورت out proc  ذخیره می کنیم به معنی این است که محدودیت  در آنچه که می تواند بعداز session  قرار گیرد  ایجاد می کنیم . در حال حاضر session  نیاز به انتقال در طول مسیر دارد ( برای ذخیره در سرور پایگاه داده داده) که هرچیز که نیاز دارد در session  ذخیره شود باید قابل رمزنگاری باشد.
 
بنابراین در مورد برنامه های بزرگ،اگر در این مورد تفکر نکیم نمی توانیم ادامه دهیم . از این رو اندیشه در معماری آماده سازی وب سایت همیشه مورد نیاز است .
 
 

 

قربانی

نویسنده 44 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید