در حال بارگذاری...
چرا و چگونه ترافیک بین سرورها توزیع میشود؟ الگوریتمهای round-robin، least connections و IP hash، سلامتسنجی، Sticky Session، Virtual IP و حالتهای active/passive و active/active.
اهداف این درس
اگر فقط یک سرور وب داشته باشید، با رشد کاربران به دو محدودیت برخورد میکنید: سرور از ظرفیت خارج میشود و با یک خرابی، سایت کاملاً از دسترس خارج میشود. لود بالانسر هر دو مشکل را حل میکند: ترافیک را بین چند سرور توزیع میکند و در صورت خرابی یک سرور، بقیه به کار ادامه میدهند.
دستگاه یا نرمافزاری که درخواستهای ورودی را طبق یک الگوریتم بین چند سرور پشتیبان توزیع میکند تا مقیاسپذیری و دسترسپذیری افزایش یابد.
لود بالانسر بهصورت دورهای سلامت سرورها را بررسی میکند. روشهای رایج: اتصال TCP به پورت سرویس، درخواست HTTP و بررسی کد پاسخ، و بررسی عمیقتر پاسخ لایه ۷. اگر سروری در تستهای پیاپی رد شود، از چرخه توزیع خارج و پس از بهبودی دوباره اضافه میشود.
نگهداشتن کاربر روی یک سرور مشخص در طول جلسه (با کوکی یا شناسه) تا وضعیت جلسه مانند سبد خرید یا ورود، از دست نرود.
آدرس IP واحد و عمومی که نماینده مجموعه سرورهای پشتی است؛ کلاینت فقط VIP را میبیند و به آدرس واقعی سرورها دسترسی ندارد.
مقایسه حالتهای لود بالانسر
| ویژگی | Active/Passive | Active/Active |
|---|---|---|
| وضعیت دستگاه دوم | آمادهباش (Standby) | فعال و در حال سرویس |
| ظرفیت | فقط دستگاه اصلی | مجموع هر دو دستگاه |
| خروجی در خرابی | Failover به دستگاه آماده | دستگاه سالم به کار ادامه میدهد |
| کاربرد | سادهتر و کمهزینهتر | ظرفیت و اطمینان بیشتر |
نکته آزمون
برای هر الگوریتم یک «کلمه کلیدی» به خاطر بسپارید: round-robin=ترتیبی، least connections=کمترین بار، IP hash=همان سرور برای همان کاربر. این سه را در سوالات سناریومحور تشخیص دهید.
لود بالانسر در کدام لایه میتواند کار کند؟
لود بالانسرهای لایه ۴ (بر اساس TCP/UDP) و لایه 7 (بر اساس HTTP و محتوای درخواست) رایجاند؛ نمونههای لایه 7 میتوانند مسیردهی به مسیر (Path) یا هدر خاص را هم انجام دهند.
آیا لود بالانسر فقط سختافزاری است؟
خیر؛ هم دستگاههای سختافزاری (مثل F5) و هم راهکارهای نرمافزاری (مثل Nginx و HAProxy) و سرویسهای ابری (مثل ALB سرویسهای ابری) وجود دارند.
جمعبندی
لود بالانسر را با سه مفهوم به خاطر بسپارید: الگوریتم (چطور تقسیم کند)، سلامتسنجی (سرور سالم کدام است) و افزونگی (اگر خودش خراب شود چه کند). با این سه، هر سناریوی توزیع بار را تحلیل میکنید.
Virtual IP (VIP) یک آدرس واحد است که نماینده مجموعه سرورهاست.
IP hash برای پایداری جلسه و Sticky Session برای حفظ وضعیت کاربر مفید است.
سلامتسنجی میتواند TCP Connect، HTTP GET یا بررسی لایه ۷ باشد.
هدف اصلی لود بالانسر چیست؟
کدام الگوریتم لود بالانسر برای سرورهایی با توان متفاوت مناسب است؟
least connections؛ چون درخواست را به سروری میفرستد که کمترین اتصال فعال را دارد، برای سرورهای ناهمگن نتیجه بهتری نسبت به round-robin میدهد.
Sticky Session در چه سناریویی حیاتی است؟
وقتی وضعیت جلسه کاربر روی یک سرور ذخیره میشود (مثل سبد خرید یا وضعیت ورود بدون ذخیرهسازی مشترک)؛ در این حالت درخواستهای همان کاربر باید به همان سرور برود.
فرق active/passive و active/active چیست؟
در active/passive فقط یک لود بالانسر فعال است و دیگری در حالت آمادهباش؛ در active/active هر دو همزمان ترافیک را سرویس میدهند و هم افزونگی دارند هم ظرفیت.