فروشگاه یک صندوق دارد. صف طولانی میشود. دو راه داری: صندوق گندهتر با یک صندوقدار خیلی سریع، یا چند صندوق معمولی و یک نفر دم در که مشتری را به صندوق خالی بفرستد. دنیای وب مدرن روی دومی بنا شده. آن آدم دم در را Load Balancer مینامند.
راه اول Vertical Scaling است — همان Scale Up: ماشین را قویتر کن. راه دوم Horizontal Scaling است — همان Scale Out: ماشین بیشتر اضافه کن. سقف اولی سختافزار و قیمت نمایی است. دومی عملاً بیسقف است؛ به شرطی که سرورها Stateless باشند.

بالا بردن یک ماشین، یا افزودن ماشین
هر دو مقیاساند. فرقشان در سقف، قیمت، و این است که خراب شدن یک ماشین کل فروشگاه را میخواباند یا نه.
| Vertical — Scale Up | Horizontal — Scale Out | |
|---|---|---|
| روش | CPU و RAM بیشتر به همان ماشین | افزودن ماشینهای بیشتر |
| سادگی | بدون تغییر کد | نیازمند Stateless بودن و LB |
| سقف | سختافزار حد دارد و قیمت نمایی میشود | عملاً بیسقف |
| Fault Tolerance | تکنقطه شکست — SPOF | خرابی یک Node قابل تحمل |
چطور بار را پخش میکند؟
Load Balancer فقط «پخش کن» نیست. باید بداند نوبتی بدهد، ببیند کدام صندوق خلوتتر است، یا مشتری آشنا را به همان صندوق قبلی بفرستد. هر الگوریتم یک شغل دارد.
L4 در برابر L7
بعضی دربانها فقط پلاک ماشین و شماره در را میبینند. بعضی پاکت را باز میکنند و میخوانند مقصد کدام بخش فروشگاه است. اسم این دو لایه از مدل شبکه آمده.
- Health Check: سرور بیمار از چرخه خارج میشود؛ وقتی دوباره سالم شد، خودش برمیگردد.
- خود LB نباید SPOF شود: حداقل دوتا — Active-Passive — یا DNS بین چند LB.
- Sticky Session فقط وقتی State محلی داری — که خودش بوی طراحی بد میدهد. State را بیرون بکش.
به زبان ساده
یک صندوق گندهتر سقف دارد؛ چند صندوق معمولی پشت یک راهنما عملاً بیسقف است — به شرط Stateless بودن.
مثال واقعی
راهنما دم در مشتری را به صندوق خالی میفرستد. اگر یک صندوق بخوابد، فروشگاه نمیخوابد. آن راهنما Load Balancer است.