ဖြန့်ဝေထားသောစနစ်များတွင် 0 န်ဆောင်မှုနည်းပါးခြင်းနှင့်စွမ်းဆောင်ရည်မြင့်မားစေရန်သေချာစေရန် Load Balancing သည်အရေးကြီးသော link တစ်ခုဖြစ်သည်။ မြင့်မားသောစွမ်းဆောင်ရည်ရှိသော web server နှင့် reverse proxy server တစ်ခုအနေဖြင့် Nginx သည် Load Balancing Balancing Algorithms ကိုထောက်ပံ့သည်။
မျှတသော algorithm ၏အဓိကအယူအဆမှာဆာဗာ၏အလေးချိန်နှင့်အညီတောင်းဆိုမှုများကိုခွဲဝေချထားရန်ဖြစ်သည်။ အကောင်အထည်ဖော်မှုအဆင့်များမှာအောက်ပါအတိုင်းဖြစ်သည် -
ဤနည်းလမ်းသည်ဆာဗာစွမ်းဆောင်ရည်ကွဲပြားခြားနားမှုများအပေါ် အခြေခံ. တောင်းဆိုမှုများကိုကျိုးကြောင်းဆီလျော်စွာခွဲဝေချထားပေးနိုင်သည်။
Nginx သည်ပုံမှန်အားဖြင့်တိုက်ရိုက်မျှတသော algorithm ပံ့ပိုးမှုမပေးသော်လည်း၎င်းကိုစိတ်ကြိုက်ပြင်ဆင်ခြင်းမှတစ်ဆင့်အောင်မြင်နိုင်သည်။ အောက်ပါဥပမာသည် Nginx ရှိမျှတသော algorithm ကိုမည်သို့ပြင်ဆင်ရမည်ကိုပြသသည်။
http { အထက်ပြန် {{ မျှတ; ဆာဗာ backend1.example.com အလေးချိန် = 3; ဆာဗာ backend2.explecom အလေးချိန် = 2; ဆာဗာ Backend3.Explemagement.com အလေးချိန် = 1; } ဆာဗာ { နားထောင် 80 နားထောင်ပါ။ server_name ဥပမာ, တည်နေရာ / { proxy_pass http: // backend; } } }
Configuration တွင်ဆာဗာစာရင်းကို အထက်ပိုင်း ညွှန်ကြားချက်မှတစ်ဆင့်သတ်မှတ်သည်။ ဆာဗာတစ်ခုစီ၏အလေးချိန်ကို အလေးချိန် အားဖြင့်သတ်မှတ်ထားသည်။ ပိုမိုမြင့်မားသောအလေးများရှိသောဆာဗာများသည်တောင်းဆိုမှုများကိုပိုမိုရယူပြီးအရင်းအမြစ်များကိုအပြည့်အဝအသုံးချလိမ့်မည်။
တရားမျှတသော algorithm ကိုပိုမိုလိုလိုလားလားနားလည်နိုင်ရန်အတွက်အောက်ပါတို့သည် Python အကောင်အထည်ဖော်မှု၏ဥပမာတစ်ခုဖြစ်သည်။
သွင်းကုန်သင်္ချာ ဆာဗာ = [ {'name': 'backend1.xpample.com', 'အလေးချိန်': 3} {'name': 'backend2.xpample.com', 'အလေးချိန်': 2} {'name': 'backend3.xpample.com', 'အလေးချိန်': 1} ] ဆာဗာများတွင်ဆာဗာအတွက် Total_weight = Sum (server) GCD = MATH.GCD (* [server [server] ဆာဗာများတွင်ဆာဗာအတွက် ['simple])) ဆာဗာများတွင်ဆာဗာအတွက်: ဆာဗာ ['current_weight'] = ဆာဗာ ['အလေးချိန်'] မှန်ကန်နေစဉ် best_server = အဘယ်သူအားမျှ best_weight = 0 ဆာဗာများတွင်ဆာဗာအတွက်: ဆာဗာ ['current_weight'] + = ဆာဗာ ['အလေးချိန်'] အကယ်. ဆာဗာ ['current_weight']> best_weight: best_server = ဆာဗာ Best_weight = ဆာဗာ ['current_weight'] အကောင်းဆုံး ['current_weight'] - = Total_weight ပုံနှိပ်ခြင်း ('' Send to you's `% s '% best_server [' Name ''])
Code တွင်လက်ရှိဆာဗာ၏လက်ရှိအလေးချိန်ကိုတွက်ချက်ခြင်းအားဖြင့်သင့်လျော်သောဆာဗာသည်တောင်းဆိုမှုကိုကိုင်တွယ်ရန်သင့်တော်ဆုံးဆာဗာကို dynamically dynamically ကို dynamically လုပ်ထားသည်။
မျှတသော algorithm သည်အလေးချိန်အခြေပြုဝန်ဟန်ချက်ညီဟညြစ်၏ဟန်ချက်ညီမှုနည်းဗျူဟာဖြစ်သည်။ Nginx Configuration နှင့်ရိုးရှင်းသောကျင့်ထုံးဥပမာများမှတဆင့် developer များကမျှတသော algorithm ကိုပြောင်းလဲစေပြီးအကောင်းဆုံး service စွမ်းဆောင်ရည်ကိုရရှိရန်အမှန်တကယ်ဆာဗာစွမ်းဆောင်ရည်အရအလေးချိန်ကိုချိန်ညှိနိုင်သည်။