ကျွန်ုပ်တို့သည် ပုဂ္ဂိုလ်ရေးအရဖြစ်စေ၊ ပရော်ဖက်ရှင်နယ်ဖြစ်စေ နှင့် အက်ပ်များလုပ်ငန်းဖြစ်သည့်အခါဖြစ်စေ ဆက်သွယ်မှုတစ်ခုတည်းအတွက်မဟုတ်ဘဲ အက်ပ်လီကေးရှင်းများကို အသုံးပြုသည့်အခါ ယနေ့ခေတ်ကဲ့သို့ အက်ပ်လီကေးရှင်းများရရှိနိုင်မှုကို အလေးအနက်မထားပါ။
အဆက်မပြတ် အွန်လိုင်းမဟုတ်သော သို့မဟုတ် မတည်မငြိမ်ဖြစ်နေသော အပလီကေးရှင်းများသည် ၎င်းတို့၏အသုံးပြုသူများနှင့် သက်ဆိုင်မှုကို ဆုံးရှုံးစေပြီး နောက်ဆုံးတွင် အသုံးမပြုတော့ပါ။ ဖျတ်ခနဲ ဖြစ်သွားသည်။ အင်တာနက်က ဘယ်တော့မှ မအိပ်ဘဲ တစ်ပတ်မှာ 24 ရက် လည်ပတ်နေတာကြောင့် တူညီတဲ့ အကြံဉာဏ်ကို အက်ပ်တွေမှာ အသုံးချရပါမယ်။
၎င်းကိုလုပ်ဆောင်ရန်နှင့် လျှောက်လွှာရရှိနိုင်မှုအား အာမခံချက်ပေးရန် အတိုင်းအတာသည် အရေးကြီးပါသည်။ Load Balancing သည် ရရှိနိုင်မှုကိုသေချာစေရန်အတွက် အရေးကြီးဆုံးအစိတ်အပိုင်းတစ်ခုဖြစ်သည်။ load balancing ကို ရိုးရှင်းသော script ဖြင့် ပြီးမြောက်နိုင်သည်ဟု လူအများက ယုံကြည်ဆဲဖြစ်သည်။
သို့သော်၊ ဤကိစ္စမဟုတ်ပါ။ ၎င်းသည် ကမ္ဘာတစ်ဝှမ်းရှိ ပရိုဂရမ်များကို အချိန်မရွေး၊ မည်သည့်စက်ပစ္စည်းမှမဆို ဝင်ရောက်ကြည့်ရှုခွင့် ပေးသည် ။
ဤပို့စ်တွင်၊ ဝန်ချိန်ခွင်လျှာချိန်ညှိမှု၊ ၎င်း၏ အယ်လဂိုရီသမ်များနှင့် အခြားအရာများကြားတွင် ၎င်းသည် မိုက်ခရိုဝန်ဆောင်မှုများနှင့် မည်သို့သက်ဆိုင်ကြောင်းကို နက်ရှိုင်းစွာကြည့်ရှုပါမည်။ စလိုက်ရအောင်။
Load Balancing ဆိုတာဘာလဲ။
ဝဘ်ဆိုဒ် သို့မဟုတ် လုပ်ငန်းအပလီကေးရှင်းတစ်ခုအတွက် ဝယ်လိုအားများလာသည်နှင့်အမျှ ဆာဗာတစ်ခုတည်းသည် မကြာမီတွင် ဝန်တစ်ခုလုံးကို ကိုင်တွယ်ဆောင်ရွက်နိုင်တော့မည်မဟုတ်ပေ။ အဖွဲ့အစည်းများသည် လိုအပ်ချက်ကို ဖြည့်ဆည်းပေးနိုင်ရန် ဆာဗာများစွာတွင် အလုပ်တာဝန်ကို ဖြန့်ဝေပေးသည်။ "Load Balancing" ဟု လူသိများသော ဤနည်းလမ်းသည် ဆာဗာတစ်ခုအား ဝန်ပိုမရအောင် တားဆီးပေးသည်၊ ၎င်းသည် နှေးကွေးသွားစေရန်၊ တောင်းဆိုမှုများ ကျဆင်းသွားစေနိုင်သည် သို့မဟုတ် ပျက်စီးမှုပင်ဖြစ်စေနိုင်သည်။
အရင်းအမြစ်ပိုလျှံမှုကြောင့် မအောင်မြင်စေရန် Load Balancing သည် ကွန်ရက်အသွားအလာကို အညီအမျှ ဖြန့်ဝေပေးပါသည်။ အပလီကေးရှင်းများ၊ ဝဘ်ဆိုဒ်များ၊ ဒေတာဘေ့စ်များနှင့် အခြားကွန်ပြူတာရင်းမြစ်များသည် ပိုမိုကောင်းမွန်စွာ လုပ်ဆောင်နိုင်ပြီး ဤနည်းလမ်းကို အသုံးပြု၍ ရရှိနိုင်ပါသည်။ ၎င်းသည် သုံးစွဲသူများ၏ တောင်းဆိုမှုများကို သင့်လျော်ပြီး အချိန်မီ လုပ်ဆောင်ရာတွင်လည်း ကူညီပေးပါသည်။
အသုံးပြုသူ၏ရှုထောင့်မှကြည့်လျှင် load balancing သည် client တစ်ခုနှင့် servers အစုအဝေးကြားတွင် မမြင်ရသော ကြားခံတစ်ခုအဖြစ် ဆောင်ရွက်ပေးပြီး ချိတ်ဆက်မှုတောင်းဆိုမှုများ ကျဆင်းသွားခြင်းမရှိကြောင်း သေချာစေသည်။ အပလီကေးရှင်းများ၊ ဝဘ်ဆိုဒ်များ၊ ဒေတာဘေ့စ်များနှင့် အွန်လိုင်းဝန်ဆောင်မှုများသည် ဝန်စည်ချိန်ညှိခြင်းမရှိဘဲ ဝယ်လိုအားများလွန်းပါက ပြိုလဲသွားနိုင်သည်။
ထောင်ပေါင်းများစွာသော သုံးစွဲသူများ၏ တောင်းဆိုမှုများကို တစ်ချိန်တည်းတွင် လမ်းကြောင်းအသွားအလာမြင့်မားသော ဝဘ်ဆိုက်တစ်ခုသို့ ပေးပို့နိုင်ပါသည်။ စာသား၊ ရုပ်ပုံများ၊ ဗီဒီယိုနှင့် အသံလွှင့်ခြင်းကဲ့သို့သော တောင်းဆိုထားသော အကြောင်းအရာများဖြင့် ဝဘ်စာမျက်နှာများကို မှန်ကန်စွာဖြည့်သွင်းရန်အတွက် ဆာဗာများစွာ လိုအပ်ပါသည်။ Load ချိန်ခွင်လျှာညီမျှခြင်းကို လူအသွားအလာများသော ဝဘ်ဆိုဒ်ဆာဗာခြံများ၊ DNS ဆာဗာများ၊ ဒေတာဘေ့စ်များနှင့် File Transfer Protocol (FTP) ဆိုက်များတွင် အများအားဖြင့် အသုံးပြုကြသည်။
ဆာဗာတစ်ခုမှ ဝန်ပိုနေပါက၊ ၎င်းသည် လုပ်ဆောင်မှု ညံ့ဖျင်းခြင်း သို့မဟုတ် ပျက်စီးခြင်းပင် ဖြစ်နိုင်သည်။ Load Balancers များသည် အသုံးပြုသူ တောင်းဆိုချက်များကို ဆာဗာများ အစုအဝေးများကြား အညီအမျှ ဖြန့်ဝေခြင်းဖြင့် စက်ရပ်နိုင်ခြေကို လျှော့ချပေးသည်။ အဖွဲ့ရှိ ဆာဗာများထဲမှ တစ်ခု အဆင်မပြေပါက၊ အုပ်စုတွင်းရှိ အခြားဆာဗာများသို့ လမ်းကြောင်းပြောင်းသွားပါမည်။ load balancer သည် server pool သို့ထည့်သောအခါ traffic distribution process တွင် ဆာဗာအသစ်များကို အလိုအလျောက် ထည့်ပေးပါသည်။
Load Balancing အလုပ်လုပ်ပုံ
အောက်ပါအတိုင်းအလုပ်လုပ်ပါတယ်
- ဘရောက်ဆာ သို့မဟုတ် အပလီကေးရှင်းမှတဆင့် ဖောက်သည်တစ်ဦးသည် တောင်းဆိုချက်ကို လက်ခံရရှိသောအခါ၊ ၎င်းသည် ဆာဗာနှင့် ချိတ်ဆက်ရန် ကြိုးစားသည်။
- load balancer သည် တောင်းဆိုမှုတစ်ခုကို လက်ခံရရှိသောအခါ၊ algorithm (သို့မဟုတ် farm) ဖြင့် တည်ဆောက်ထားသော ပုံစံများကို အခြေခံ၍ ဆာဗာအုပ်စုအတွင်းရှိ ဆာဗာများထဲမှ တစ်ခုကို လမ်းကြောင်းပေးသည်။
- ဆာဗာသည် ချိတ်ဆက်မှုတောင်းဆိုမှုကို လက်ခံရရှိပြီး load balancer မှတဆင့် client ကို အဖြေပေးသည်။
- load balancer မှ တုံ့ပြန်မှုကို လက်ခံရရှိသောအခါ၊ ၎င်းသည် ရွေးချယ်ထားသော server ၏ IP လိပ်စာနှင့် client ၏ IP လိပ်စာနှင့် ကိုက်ညီပါသည်။ အဲဒီနောက်မှာတော့ အဖြေကို packet နဲ့ ပို့ပါတယ်။
- SSL offload သည် Security Socket Layer ကုဒ်ဝှက်ခြင်းပရိုတိုကောကို အသုံးပြု၍ ဒေတာကို စာဝှက်ဖြည်သည့်လုပ်ငန်းစဉ်ဖြစ်ပြီး ဆာဗာများမလိုအပ်စေရန်။
- စက်ရှင်ပြီးဆုံးသည်အထိ လုပ်ငန်းစဉ်ကို ထပ်ခါတလဲလဲ လုပ်ဆောင်သည်။
Load Balancing Methods
ဆာဗာမွေးမြူရေးခြံရှိ မည်သည့်ဆာဗာများမှ နောက်တောင်းဆိုချက်ကို လက်ခံရရှိသည်ကို ရွေးချယ်ရန်၊ ဝန်ချိန်ညှိမှုနည်းစနစ်တစ်ခုစီသည် စံသတ်မှတ်ချက်အစုံကို အသုံးပြုသည်။ Load Balancing အတွက် ပုံမှန်နည်းလမ်းငါးခု ရှိပါသည်။
- ရော်ဘင်ပတ်ပတ်လည်: ဤသည်မှာ ပုံသေချဉ်းကပ်နည်းဖြစ်ပြီး၊ ၎င်းသည် အသံအတိုင်းပင် အလုပ်လုပ်ပါသည်။ load balancer သည် အဖွဲ့အတွင်းရှိ ပထမဆုံးဆာဗာမှ စတင်ကာ လှည့်ပတ်သည့်ပုံစံဖြင့် တောင်းဆိုမှုများကို ဖြန့်ဝေပြီး အောက်ခြေသို့ ဆက်လက်လုပ်ဆောင်ကာ ၎င်းကို ထပ်မံခေါ်ဆိုရန် စောင့်ဆိုင်းနေပါသည်။ ဤနည်းလမ်းသည် ဆာဗာတစ်ခုစီသည် အကြမ်းဖျင်းတူညီသောချိတ်ဆက်မှုအရေအတွက်ကို ကိုင်တွယ်ကြောင်းသေချာစေသည်။
- အလေးချိန်အဝိုင်း ရော်ဘင်: ဤချဉ်းကပ်မှုသည် ဆာဗာတစ်ခုစီအား ၎င်း၏စွမ်းရည်နှင့် ယေဘုယျအားဖြင့် အချိုးကျသော အလေးချိန် (သို့မဟုတ် ဦးစားပေး) ကို သတ်မှတ်ပေးသည်။ ဆာဗာတစ်ခု တောင်းဆိုမှု များလေလေ၊ အလေးချိန် ပိုများလေဖြစ်သည်။ ဥပမာအားဖြင့်၊ နှစ်ခု၏အလေးချိန်တန်ဖိုးရှိသောဆာဗာတစ်ခုသည် တစ်ခု၏အလေးချိန်တန်ဖိုးတစ်ခုရှိသောဆာဗာတစ်ခုကဲ့သို့တောင်းဆိုမှုနှစ်ဆပိုမိုရရှိသည်။
- Sticky Session: session persistence ဟုလည်းသိကြသော ဤချဉ်းကပ်နည်းသည် session တစ်ခု၏ကြာချိန်အတွက် အချို့သော client များနှင့် server များကို ချိတ်ဆက်ပေးသည်။ လင့်ခ်ကို တည်ထောင်ရန်၊ အသုံးပြုသူ၏ အရည်အချင်းကို ဖော်ထုတ်ရန် ကွတ်ကီး သို့မဟုတ် အသုံးပြုသူ၏ IP လိပ်စာကို အသုံးပြုသည်။ ချိတ်ဆက်မှုတည်ဆောက်ပြီးသည်နှင့်၊ အသုံးပြုသူ၏တောင်းဆိုမှုများကို စက်ရှင်ပြီးဆုံးသည်အထိ တူညီသောဆာဗာသို့ ညွှန်ကြားမည်ဖြစ်သည်။ ၎င်းသည် အသုံးပြုသူအတွေ့အကြုံကို ပိုမိုကောင်းမွန်စေပြီး ကွန်ရက်အရင်းအမြစ်များကို ပိုကောင်းအောင်ပြုလုပ်ပေးသည်။
- ချိတ်ဆက်မှုအနည်းဆုံး: ဤနည်းဗျူဟာသည် တောင်းဆိုမှုအားလုံးသည် တူညီသောဆာဗာဝန်ထုပ်ဝန်ပိုးဖြစ်စေသည်ဟု ယူဆသည်။ ရလဒ်အနေဖြင့်၊ တောင်းဆိုမှုအနည်းဆုံးအရေအတွက်ရှိသည့် ဆာဗာသည် နောက်တောင်းဆိုချက်ကို လက်ခံရရှိမည်ဖြစ်သည်။
- IP Hash− ဤအယ်လဂိုရီသမ်သည် ကလိုင်းယင့်နှင့် ဆာဗာ၏ အရင်းအမြစ်နှင့် ဦးတည်ရာ IP လိပ်စာများကို အခြေခံ၍ ထူးခြားသော hash သော့ကို ထုတ်ပေးသည်။ သော့ကို တောင်းဆိုမှုကို လမ်းကြောင်းပေးရန်အတွက် အသုံးပြုပြီး ပျောက်ဆုံးသွားသော ချိတ်ဆက်မှုကို တူညီသောဆာဗာနှင့် ပြန်လည်စတင်နိုင်စေပါသည်။
ဟာ့ဒ်ဝဲ Vs. Software Load Balancers
Hardware Load Balancer
စက်ပစ္စည်းကဲ့သို့သော ရုပ်ပိုင်းဆိုင်ရာ ဟာ့ဒ်ဝဲသည် ဟာ့ဒ်ဝဲဝန်ချိန်ခွင်လျှာများကို ဖန်တီးပေးသည်။ ၎င်းတို့သည် လက်ရှိချိတ်ဆက်မှုအရေအတွက်၊ ပရိုဆက်ဆာအသုံးပြုမှုနှင့် ဆာဗာစွမ်းဆောင်ရည်စသည့် အချက်များအပေါ် မူတည်၍ ဆာဗာများသို့ လမ်းကြောင်းပြောင်းပေးသည်။ ဗားရှင်းအသစ်များနှင့် လုံခြုံရေးပြင်ဆင်မှုများ ရရှိလာသောအခါတွင် ဟာ့ဒ်ဝဲဝန်ချိန်ခွင်လျှာများ တွင် ပြုပြင်ထိန်းသိမ်းရန်နှင့် အပ်ဒိတ်လုပ်ရန် လိုအပ်သော မူကွဲများပါရှိသည်။
Hardware load balancers များသည် မကြာခဏဆိုသလို ပိုမိုမြင့်မားသောစွမ်းဆောင်ရည်နှင့် ထိန်းချုပ်မှုများအပြင် Kerberos authentication နှင့် SSL hardware acceleration ကဲ့သို့သော ကျယ်ပြန့်သောစွမ်းရည်များကို ပေးစွမ်းနိုင်သော်လည်း ၎င်းတို့သည် စီမံခန့်ခွဲမှုနှင့် ပြုပြင်ထိန်းသိမ်းမှုဆိုင်ရာ ကျွမ်းကျင်မှုအဆင့်အချို့ လိုအပ်ပါသည်။ hardware load balancers များသည် software load balancers များထက် ပျော့ပြောင်းပြီး အရွယ်အစား သေးငယ်သောကြောင့်၊ over-provision hardware load balancers များအတွက် အလားအလာရှိပါသည်။
Software Load Balancer
Software load balancers များသည် ပုံမှန်အားဖြင့် ၎င်းတို့၏ hardware counterparts များထက် တပ်ဆင်ရန် ပိုမိုလွယ်ကူပါသည်။ ၎င်းတို့သည် စရိတ်စကပိုသက်သာပြီး လိုက်လျောညီထွေရှိကာ ဆော့ဖ်ဝဲလ်ဖွံ့ဖြိုးတိုးတက်ရေးပတ်ဝန်းကျင်များနှင့်လည်း ကောင်းစွာအလုပ်လုပ်သည်။ ဆော့ဖ်ဝဲလ်နည်းလမ်းသည် သင့်ပတ်ဝန်းကျင်၏ တိကျသောလိုအပ်ချက်များနှင့် load balancer ကို စိတ်ကြိုက်ပြင်ဆင်နိုင်စေပါသည်။ ဝန်ချိန်ခွင်လျှာကို ချိန်ညှိခြင်းအတွက် အပိုထပ်ဆောင်းအချိန်ကုန်ကျစရိတ်ဖြင့် တိုးလာသောပြောင်းလွယ်ပြင်လွယ်သည် ရှိလာနိုင်သည်။
Software Balancers များသည် ဟာ့ဒ်ဝဲများထက် ပြုပြင်မွမ်းမံမှုများနှင့် အပ်ဒိတ်များပြုလုပ်ရန် ပိုမိုကောင်းမွန်သော လိုက်လျောညီထွေဖြစ်အောင် ပံ့ပိုးပေးပါသည်။ ကြိုတင်ထုပ်ပိုးထားသော virtual machines များကို software load balancers (VMs) အဖြစ် အသုံးပြုနိုင်ပါသည်။ Virtual machines များသည် သင့်အား ဆက်တင်အချိန်အချို့ကို သက်သာစေလိမ့်မည်၊ သို့သော် ၎င်းတို့တွင် ၎င်းတို့၏ hardware counterparts များတွင် ရရှိနိုင်သော လုပ်ဆောင်နိုင်စွမ်းအားလုံးကို မရရှိနိုင်ပါ။
ရိုးရှင်းသော Load Balancing အကောင်အထည်ဖော်ခြင်း။
Spring Cloud စာကြည့်တိုက်ကို အသုံးပြုပါမည်။ အက်ပ်များကိုတည်ဆောက်ပါ။ load-balanced ဖြင့်အခြားအက်ပ်များသို့ချိတ်ဆက်ပါ။ အဝေးထိန်းဝန်ဆောင်မှုတောင်းဆိုမှုများကို လုပ်ဆောင်နေစဉ်တွင် ကျွန်ုပ်တို့နှစ်သက်သည့်နည်းပညာကို အသုံးပြု၍ Load Balancing ကို အလွယ်တကူ တည်ဆောက်နိုင်ပါသည်။ အောက်ပါကုဒ်ကို နမူနာအဖြစ် သုံးသပ်ကြည့်ပါ။ ကျွန်ုပ်တို့သည် အခြေခံဆာဗာ အပလီကေးရှင်းဖြင့် စတင်ပါမည်။
ဆာဗာတွင် HTTP အဆုံးမှတ်တစ်ခုသာရှိမည်ဖြစ်ပြီး ဖြစ်ရပ်များစွာတွင် လုပ်ဆောင်သွားမည်ဖြစ်သည်။ ထို့နောက် ဆာဗာအများအပြားတွင် တောင်းဆိုမှုများကို ဖြန့်ဝေရန်အတွက် Load Balancer ကိုအသုံးပြုသည့် client အက်ပ်တစ်ခုကို တည်ဆောက်ပါမည်။
ဆာဗာ
အခြေခံတစ်ခုနဲ့ စတင်တယ်။ နွေ ဦး ရာသီ ကျွန်ုပ်တို့၏ ဥပမာဆာဗာအတွက် လျှောက်လွှာ
စတင်ရန်၊ ကျွန်ုပ်တို့သည် instance_ID ဟုခေါ်သော စိတ်ကြိုက်ပြောင်းလဲနိုင်သော ကိန်းရှင်တစ်ခုကို ထည့်သွင်းပါသည်။ ၎င်းသည် လုပ်ဆောင်နေသည့် သာဓကများစွာကို ခွဲခြားသိမြင်နိုင်ရန် ကျွန်ုပ်တို့အား ကူညီပေးပါသည်။ ၎င်းကိုပြီးနောက်၊ ကျွန်ုပ်တို့သည် မက်ဆေ့ချ်နှင့် instance ID ကိုပြန်ပေးသည့် HTTP GET အဆုံးမှတ်တစ်ခုကို ဖန်တီးသည်။
ID 1 ပါသော မူရင်းဥပမာသည် ပို့တ် 8080 တွင် လုပ်ဆောင်မည်ဖြစ်သည်။ ဒုတိယဥပမာတစ်ခုကို စတင်ရန် ကျွန်ုပ်တို့သည် ပရိုဂရမ်ဘောင်အနည်းငယ်ကို ထည့်သွင်းရန် လိုအပ်သည်-
ဖောက်သည်
အခု client code ကိုကြည့်ရအောင်။ ဤသည်မှာ Load Balancer ဝင်လာသောကြောင့် ကျွန်ုပ်တို့၏ အပလီကေးရှင်းတွင် ၎င်းကို ထည့်သွင်းခြင်းဖြင့် စတင်ကြပါစို့။
၎င်းကိုပြီးနောက်၊ ကျွန်ုပ်တို့သည် ServiceInstanceListSupplier ကို အကောင်အထည်ဖော်မှုတစ်ခုအား ဖော်ဆောင်ပါသည်။ ၎င်းသည် Load Balancer တွင် အရေးကြီးဆုံး အင်တာဖေ့စ်တစ်ခုဖြစ်သည်။ ၎င်းသည် ကျွန်ုပ်တို့ အသုံးပြုနိုင်သော ဝန်ဆောင်မှု ဖြစ်ရပ်များကို မည်သို့ရှာဖွေကြောင်း သတ်မှတ်ပေးပါသည်။
ကျွန်ုပ်တို့၏နမူနာအပလီကေးရှင်းတွင် ကျွန်ုပ်တို့၏ဥပမာဆာဗာ၏ သီးခြားဥပမာနှစ်ခုကို hard-code လုပ်ပါမည်။ ၎င်းတို့သည် တူညီသောစနစ်တွင် လုပ်ဆောင်သော်လည်း သီးခြား port များကို အသုံးပြုသည်-
LoadBalancerConfiguration အတန်းကို ယခုဖန်တီးပါ-
ဤအတန်းသည် ရည်ရွယ်ချက်တစ်ခုတည်းသာရှိသည်- ၎င်းသည် အဝေးထိန်းတောင်းဆိုမှုများပြုလုပ်ရန်အတွက် load-balanced WebClient တည်ဆောက်သူကို ဖန်တီးပေးသည်။ ကျွန်ုပ်တို့၏မှတ်ချက်တွင် ဝန်ဆောင်မှုအတွက် အတုအယောင်အမည်ကို အသုံးပြုထားသည်။
အဘယ်ကြောင့်ဆိုသော် ကျွန်ုပ်တို့သည် အချိန်မတိုင်မီ လုပ်ဆောင်ရန်အတွက် တိကျသော hostname နှင့် ports များကို မသိနိုင်သောကြောင့်ဖြစ်သည်။ ရလဒ်အနေဖြင့်၊ ကျွန်ုပ်တို့သည် အတုအယောင်အမည်ကို နေရာယူထားသူတစ်ဦးအဖြစ် အသုံးပြုကာ ၎င်းသည် လုပ်ဆောင်နေသည့် သာဓကတစ်ခုကို ရွေးချယ်သောအခါ မူဘောင်သည် အမှန်တကယ်အချက်အလက်များကို အစားထိုးမည်ဖြစ်သည်။
ထို့နောက် ကျွန်ုပ်တို့၏ဝန်ဆောင်မှုပေးဝေမှုကို ချက်ခြင်းဖြစ်စေရန်အတွက် အသုံးပြုမည့် Configuration class တစ်ခုပြုလုပ်ကြပါစို့။ ကျွန်ုပ်တို့သည် ယခင်ကဲ့သို့ နံမည်တူကို အသုံးပြုထားကြောင်း သတိပြုပါ။
ယခုကျွန်ုပ်တို့သည် တကယ့် client application ကို တည်ဆောက်နိုင်ပါပြီ။ WebClient bean ကို အသုံးပြု၍ နမူနာဆာဗာသို့ စုံစမ်းမေးမြန်းချက် 10 ခု ပေးပို့ကြပါစို့။
သီးခြားဥပမာနှစ်ခုကြားတွင် ကျွန်ုပ်တို့သည် load balancing လုပ်နေကြောင်း output မှ မြင်တွေ့နိုင်သည်-
Microservices တွင် Balancing Load
ချိတ်ဆက်မှု လျော့ရဲရဲတောက်သော ဝန်ဆောင်မှုအစုတစ်ခုအနေဖြင့် လုပ်ငန်းဆိုင်ရာအက်ပ်လီကေးရှင်းများကို တီထွင်ရန်အတွက် Netflix နှင့် Amazon ကဲ့သို့သော ကုမ္ပဏီအများအပြားက Microservice ဗိသုကာကို အသုံးပြုလျက်ရှိသည်။ ရှုပ်ထွေးသောအပလီကေးရှင်းများအတွက် Hyperscale နှင့် စဉ်ဆက်မပြတ်ပေးပို့ခြင်းသည် ဤဖြန့်ဝေထားသော၊ ပေါ့လျော့စွာချိတ်ဆက်ထားသောဗိသုကာသို့ပြောင်းရွှေ့ရခြင်း၏အကြောင်းရင်းနှစ်ခုသာဖြစ်သည်။
ဤလုပ်ငန်းများ၏အဖွဲ့များသည် ရိုးရာနည်းလမ်းများထက် ပိုမိုမြန်ဆန်ပြီး ချို့ယွင်းမှုနှုန်းနည်းပါးသော အက်ပ်များကို ထုတ်လုပ်နိုင်ရန် Agile နှင့် DevOps မဟာဗျူဟာများကို အကောင်အထည်ဖော်ခဲ့သည်။ သို့ရာတွင်၊ ဖြန့်ဝေထားသော ဗိသုကာပညာ၏ ရှုပ်ထွေးမှုနှင့် အပလီကေးရှင်း၏ တောင်းဆိုချက်များ၊ အတိုင်းအတာလိုအပ်ချက်များနှင့် အချိန်-စျေးကွက် ကန့်သတ်ချက်များကြား မျှတအောင် ချိန်ညှိရပါမည်။
နှစ်ပေါင်းများစွာကြာအောင်၊ အပလီကေးရှင်းပေးပို့မှု ထိန်းချုပ်ကိရိယာများ (ADC) များသည် လုပ်ငန်းခွင်အတွင်း သို့မဟုတ် cloud တွင် လက်ခံကျင်းပသည့် ကော်ပိုရိတ်အပလီကေးရှင်းများအတွက် ဝန်ဆောင်မှုအဆင့်သတ်မှတ်ချက်များနှင့် ကိုက်ညီရန် အရေးကြီးပါသည်။ မိုက်ခရိုဝန်ဆောင်မှုအခြေပြု အက်ပ်လီကေးရှင်းတစ်ခုနှင့် ချိတ်ဆက်နေသည့် ဖောက်သည်တစ်ဦးသည် သုံးစွဲသူနှင့် မိုက်ခရိုဝန်ဆောင်မှုများကို အမှီအခိုကင်းစွာ ကြီးထွားလာစေရန်အတွက် ၎င်းကို ပေးဆောင်နေသည့် သာဓကများအကြောင်း သိရန်မလိုအပ်ပါ။
၎င်းသည် reverse proxy သို့မဟုတ် load balancer မှပေးဆောင်သော decoupling အတိအကျဖြစ်သည်။ တစ်ဖန်၊ ဝန်ချိန်ခွင်လျှာသည် microservices များသည် ဝယ်လိုအား၊ လုံခြုံရေးနှင့် ရရှိနိုင်မှုတို့ကို ကိုင်တွယ်ဖြေရှင်းနိုင်ကြောင်း သေချာစေရန်အတွက် ဖြေရှင်းချက်ဖြစ်သည်။
အလျားလိုက် ချဲ့ထွင်နိုင်မှု အတွက် အရှေ့-အနောက် ဖြန့်ကျက်မှု နှင့် client နှင့် microservices-based apps များကြား ရိုးရာ မြောက်-တောင် ဝန်ချိန်ခွင်လျှာ ချိန်ညှိမှုကို ပေါင်းစပ်လိုက်သောအခါတွင် သင်သည် သိသိသာသာ မြှင့်တင်မှုကို ရရှိမည်ဖြစ်သည်။ ရည်ရွယ်ချက်မှာ ဖွံ့ဖြိုးတိုးတက်မှု သွက်လက်ခြင်း သို့မဟုတ် မစွန့်လွတ်ဘဲ IT လိုအပ်သော လုံခြုံပြီး ထိန်းညှိထားသော ပတ်ဝန်းကျင်ကို ထိန်းသိမ်းရန်ဖြစ်သည်။ DevOps အလိုအလျောက်စနစ် လိုအပ်ချက်များ။
အက်ိဳးေက်းဇူးမ်ား
Load Balancing သည် အရင်းအမြစ်အသုံးပြုမှု၊ ဒေတာပေးပို့မှုနှင့် တုံ့ပြန်မှုမြင့်မားသည့် ဝဘ်ဆိုက်များနှင့် အက်ပ်များအတွက် ပိုမိုကောင်းမွန်စေခြင်းဖြင့် အကျိုးကျေးဇူးများစွာကို ပေးဆောင်ပေးပါသည်။ Load Balancing သည် အသုံးပြုသူတောင်းဆိုမှုများကို လျင်မြန်စွာနှင့် မှန်ကန်စွာ ဖြည့်ဆည်းပေးနိုင်ကြောင်း သေချာစေပါသည်။
၎င်းတို့သည် သုံးစွဲသူများအား နှေးကွေးသော ပရိုဂရမ်များနှင့် အရင်းအမြစ်များကို ကိုင်တွယ်ဖြေရှင်းရာတွင် ပိုမိုဆိုးရွားစေပါသည်။ Load Balancing သည် စက်ရပ်ချိန်ကို ရှောင်ရှားရန်နှင့် လုံခြုံရေးကို ရိုးရှင်းစေပြီး သင့်ကုမ္ပဏီအတွက် ကုန်ထုတ်စွမ်းအားနှင့် ဝင်ငွေများဆုံးရှုံးနိုင်ခြေကို လျှော့ချပေးပါသည်။
- Load Balancing သည် ဝယ်လိုအား ညွှန်ကြားသည့်အတိုင်း ဆာဗာများကို ပေါင်းထည့်ရန်နှင့် ဖယ်ရှားရန် ပျော့ပြောင်းမှုကို ပံ့ပိုးပေးသည့်အပြင် အသွားအလာကို အကောင်းဆုံး ထိရောက်မှု ရှိစေရန် စီမံပေးပါသည်။ ပြုပြင်ထိန်းသိမ်းနေစဉ်အတွင်း အသွားအလာကို အခြားဆာဗာများသို့ လမ်းကြောင်းပြောင်းသွားသောကြောင့် သုံးစွဲသူများကို မနှောင့်ယှက်ဘဲ ဆာဗာပြုပြင်ထိန်းသိမ်းမှုကိုလည်း လုပ်ဆောင်နိုင်သည်။
- Load Balancing သည် ဆာဗာအစုတစ်ခုကြား အသွားအလာကို ပိုင်းခြားခြင်းဖြင့် built-in redundancy ကို ပံ့ပိုးပေးပါသည်။ အဆင်မပြေပါက အသုံးပြုသူများအပေါ် သက်ရောက်မှုအနည်းဆုံးဖြစ်အောင် သင်ချက်ချင်းပြောင်းနိုင်သည်။
- အပလီကေးရှင်းတစ်ခု သို့မဟုတ် ဝဘ်ဆိုက်၏အသုံးပြုမှု တိုးလာပါက၊ တိုးလာခြင်းသည် ထိထိရောက်ရောက် မကိုင်တွယ်ပါက ၎င်း၏စွမ်းဆောင်ရည်ကို ကျဆင်းသွားနိုင်သည်။ Load Balancing ဖြင့်၊ သင်သည် ဝန်ဆောင်မှုကို အနှောင့်အယှက်မဖြစ်စေဘဲ ဝယ်လိုအားများပြည့်မီရန် အစစ်အမှန် သို့မဟုတ် virtual ဆာဗာကို ထည့်နိုင်သည်။ Load Balancer သည် ဆာဗာအသစ်များကို အွန်လိုင်းပေါ်ရောက်လာသည်နှင့် ၎င်းတို့ကို လည်ပတ်မှုတွင် အားစိုက်ထုတ်ကာ ပေါင်းစပ်ထည့်သွင်းပေးသည် ။ ဤနည်းလမ်းသည် ဝဘ်ဆိုက်တစ်ခုအား ဝန်ပိုလွန်းသော ဆာဗာမှ အသစ်တစ်ခုသို့ ပြောင်းရွှေ့ခြင်းဖြစ်ပြီး မကြာခဏ စက်ရပ်သွားခြင်းမျိုးတွင် မကြာခဏပါဝင်နေခြင်းကို ဦးစားပေးသည်။
ကောက်ချက်
Load Balancing သည် ခေတ်ပြိုင်၊ ချို့ယွင်းမှုဒဏ်ခံနိုင်သော စနစ်များ၏ အရေးကြီးသော အစိတ်အပိုင်းတစ်ခုဖြစ်သည်။ ကျွန်ုပ်တို့သည် ဝန်ချိန်ခွင်လျှာချိန်ညှိနည်းအမျိုးမျိုးကို အသုံးပြု၍ ဝန်ဆောင်မှုများစွာကို ဖြန့်ဝေသည့်အက်ပ်များကို ရိုးရှင်းစွာတည်ဆောက်နိုင်သည်။ အပလီကေးရှင်းများကို လုံခြုံစွာပေးဆောင်နိုင်ရန် စီးပွားရေးလုပ်ငန်းများသည် ရှုပ်ထွေးသော အိုင်တီစနစ်များကို ပံ့ပိုးပေးရမည်ဖြစ်သည်။
ဒိုမိန်းဖြတ်ကျော် မိုက်ခရိုဝန်ဆောင်မှုများ ဖွဲ့စည်းမှုပုံစံ၊ ဖြန့်ကျက်ခြင်းနှင့် ပြုပြင်ထိန်းသိမ်းခြင်းသည် အမှားအယွင်းများတတ်ပြီး၊ စျေးကြီးပြီး အချိန်ကုန်နိုင်ပါသည်။ IT သည် ဤအသေးစားဝန်ဆောင်မှုများကို တပ်ဆင်ခြင်းနှင့် ပြုပြင်ထိန်းသိမ်းမှု ပိုမိုလွယ်ကူစေရန် ၎င်းတို့၏ လျင်မြန်သော နှင့် DevOps လုပ်ငန်းစဉ်များနှင့် လိုက်လျောညီထွေဖြစ်စေသော အကောင်းဆုံးအလေ့အကျင့်များနှင့် စုစည်းမှုဆိုင်ရာ အကောင်းဆုံးအလေ့အကျင့်များနှင့် နည်းပညာများကို IT မှ အသုံးပြုသင့်ပါသည်။
တစ်ဦးစာပြန်ရန် Leave