လွယ်လွယ်ပြောရရင် Load Balancer ဆိုတာ လူအုပ်ကြီးကို ကောင်တာ အများအပြား ခွဲပေးတဲ့ မန်နေဂျာလိုပါ။ Website တစ်ခုကို လူသန်းချီ တစ်ပြိုင်နက် ဝင်လာတဲ့အခါ Server တစ်လုံးတည်းနဲ့ မနိုင်ဘူး။ Load Balancer က Request တွေကို Server အလုံးများများကြား မျှဝေပေးတယ်။ ဘယ် Server မဆို ကျန်းမာရေး မကောင်းရင် သူ့ကို ခဏ ဖယ်ထားပေးတယ်။

ဥပမာ Online Shop က 11.11 Sale လုပ်တယ်ဆိုပါစို့။ လူ ၁ သိန်း တစ်ပြိုင်နက် ဝင်လာတယ်။ Server တစ်လုံးတည်း ရှိရင် ဝန်ပိပြီး ကျသွားမယ်။ Server ၅ လုံး ထားပြီး Load Balancer ခံထားရင် Request တွေကို ၅ လုံးကြား ခွဲဝေပေးတယ်။ တစ်လုံး ပျက်သွားလည်း ကျန်တဲ့ ၄ လုံးက ဆက်အလုပ်လုပ်တယ် — User တွေ ဘာမှ မသိလိုက်ဘူး။

Load Balancer က Request ခွဲတဲ့ နည်းတွေ ရှိတယ် —

– Round Robin → Server တွေကို အလှည့်ကျ ပေးတယ် (၁၊ ၂၊ ၃၊ ၁၊ ၂၊ ၃…)
– Least Connections → Connection နည်းတဲ့ Server ကို ဦးစားပေးတယ်
– IP Hash → User တစ်ယောက်တည်းကို Server တစ်လုံးတည်းဆီ အမြဲ ပို့ပေးတယ်

နောက်ထပ် အရေးကြီးတဲ့ အလုပ်က Health Check ပါ။ Load Balancer က Server တွေကို “နေကောင်းလား?” လို့ ခဏခဏ မေးတယ်။ မဖြေတဲ့ Server ကို List ထဲက ခဏ ထုတ်ထားပြီး ပြန်ကောင်းလာမှ ပြန်ထည့်တယ်။ ဒါကြောင့် Server ပျက်လည်း Website က မကျဘူး။

AWS ELB, Nginx, Cloudflare လို Tool တွေက ဒီအလုပ်ကို လုပ်ပေးတယ်။ သေးသေး Website တွေတော့ မလိုသေးဘူး။ ဒါပေမယ့် Traffic ကြီးလာတဲ့အခါ Load Balancer မပါဘဲ Scale လုပ်လို့ မရဘူး။

မှတ်ထားရမှာက Load Balancer က ဝန်ခွဲပေးတာပဲ — Server ကိုယ်တိုင် နှေးရင် မကူညီနိုင်ဘူး။ အရင်ဆုံး Code ကို Optimize လုပ်၊ ပြီးမှ Server ဖြည့်၊ အဲဒီနောက် Load Balancer ခံ။ အစဉ်လိုက် လုပ်ရင် ပိုက်ဆံလည်း ချွေတာ၊ စနစ်လည်း ခိုင်မာတယ်။ 🙂

– Min SiThu (www.minsithu.org)