یک شرکت فروش بلیت سینما، سه شنبهها درخواستهای زیادی برای فروش بلیت دریافت میکند. از همین رو تصمیم گرفته است که برای پاسخگو بودن به نیاز کاربران خود چندین نمونه از برنامه خود را بر روی سرورهایی مختلف با ظرفیت متفاوت اجرا کند.
شما به عنوان یک برنامهنویس تصمیم گرفتهاید تا یک سیستم طراحی کنید که هر درخواست دریافت شده را به ترتیب برای یکی از سرورها در صورت داشتن ظرفیت ارسال کند. این سیستم که قرار است شما طراحی کنید لود بالانسر نامیده میشود.
برای این منظور، شما یک کلاس به نام LoadBalancer
ایجاد کنید که توانایی تخصیص درخواستها به سرورهای مختلف را داشته باشد. هر سرور دارای ظرفیت مشخصی است و امکان دارد ظرفیتش تمام شود.
برنامه شما به صورت عادلانه درخواستها را بین سرویسها با استفاده از الگوریتم Round Robin
توزیع میکند، و به صورت چرخشی بعد از رسیدن به آخرین سرور، به ابتدای لیست برمیگردد.
نکات
- برای دانلود فایل پروژه بر روی این لینک کلیک کنید.
- اگر هیچ سرویسی نداشته باشیم
Exception
خواهیم داشت. - اگر سرویس داشته باشیم اما ظرفیت آن ها تمام شده باشد
Exception
خواهیم داشت. - اگر درخواست ارسال شده خاتمه یابد، ظرفیت سرور افزایش نخواهد یافت.
- در رابطه با درخواست، ما باید آگاهی داشته باشیم که آیا درخواست با موفقیت انجام شده است یا خیر.
نحوه ارسال
شما باید کد تابع Request
از کلاس LoadBalancer
و تابع ToExecute
از کلاس Service
را تکمیل کنید.
به طور ساده، لود بالانسر یک سرویس است که به سیستم کمک میکند تا هنگامی که تعداد زیادی درخواست به سرویسها میرسد، همه درخواستها به صورت متوازی و به تساوی بین منابع موجود بر اساس ظرفیتشان توزیع شوند.
ارسال پاسخ برای این سؤال