Kaundan[Itago][Ipakita]
Ang pagkaanaa sa mga aplikasyon wala pa giseryoso sama sa karon kung mogamit kami mga app alang sa labi pa sa komunikasyon, personal man o propesyonal ug kung ang mga app ang negosyo.
Ang mga aplikasyon nga dili kanunay online, o dili lig-on, mawad-an sa ilang mga tiggamit ug kalambigitan, sa kadugayan mahimong dili na magamit. Nahitabo ni sa kalit. Tungod kay ang internet dili makatulog ug naglihok 24 oras sa usa ka adlaw, 7 ka adlaw sa usa ka semana, ang parehas nga ideya kinahanglan magamit sa mga app.
Ang scalability hinungdanon sa pagbuhat niini ug pagsiguro nga magamit ang aplikasyon. Ang pagbalanse sa load usa sa labing hinungdanon nga sangkap sa pagsiguro nga magamit. Daghang mga tawo ang nagtuo gihapon nga ang pagbalanse sa pagkarga mahimong matuman sa usa ka yano nga script.
Apan, dili ingon niini ang kahimtang. Nag-inusara kini nga naghatag access sa mga programa sa tibuuk kalibutan - bisan unsang orasa ug gikan sa bisan unsang aparato.
Sa kini nga post, atong susihon pag-ayo ang pagbalanse sa load, mga algorithm niini, ug kung giunsa kini kalambigitan sa mga microservice, ug uban pang mga butang. Magsugod ta!
Unsa ang pagbalanse sa load?
Samtang nagkadako ang panginahanglan alang sa usa ka website o aplikasyon sa negosyo, ang usa ka server sa dili madugay dili na makadumala sa tibuuk nga karga. Ang mga organisasyon nag-apod-apod sa workload sa daghang mga server aron matagbaw ang panginahanglan. Kini nga pamaagi, nailhan nga "pagbalanse sa pagkarga," nagpugong sa usa ka server nga dili ma-overload, nga mahimong hinungdan sa paghinay niini, pag-drop sa mga hangyo, o bisan pag-crash.
Ang pagbalanse sa load parehas nga nag-apod-apod sa trapiko sa network aron malikayan ang pagkapakyas tungod sa sobra nga karga sa kapanguhaan. Ang mga aplikasyon, mga website, mga database, ug uban pang mga kapanguhaan sa kompyuter mas maayo nga nahimo ug mas magamit gamit kini nga pamaagi. Nakatabang usab kini sa husto ug tukma sa panahon nga pagproseso sa mga hangyo sa tiggamit.
Gikan sa panan-aw sa tiggamit, ang pagbalanse sa load nagsilbing usa ka dili makita nga tigpataliwala tali sa usa ka kliyente ug usa ka koleksyon sa mga server, pagsiguro nga ang mga hangyo sa koneksyon dili ihulog. Ang mga aplikasyon, website, database, ug mga serbisyo sa online lagmit mahugno kon ang panginahanglan mahimong dako kaayo nga walay pagbalanse sa load.
Gatusan ka libo nga mga hangyo sa tiggamit mahimong ipadala sa usa ka taas nga trapiko nga website sa parehas nga oras. Daghang mga server ang gikinahanglan aron sa husto nga pagpuno sa mga web page sa gihangyo nga sulod, sama sa teksto, mga hulagway, video, ug audio streaming. Ang pagbalanse sa load kasagarang gigamit sa mga farm sa server sa website nga adunay daghang trapiko, ingon man mga DNS server, database, ug mga site sa File Transfer Protocol (FTP).
Kung ang usa ka server nabug-atan, mahimo kini nga dili maayo o ma-crash pa. Ang mga load balancer makapamenos sa kahigayonan sa downtime pinaagi sa pag-apod-apod sa mga hangyo sa user nga parehas sa usa ka koleksyon sa mga server. Kung mapakyas ang usa sa mga server sa grupo, ang trapiko ibalhin sa ubang mga server sa grupo. Ang usa ka load balancer awtomatikong makadugang sa bag-ong mga server sa proseso sa pag-apod-apod sa trapiko kung kini idugang sa server pool.
Giunsa pagtrabaho ang pagbalanse sa load?
Naglihok kini sama sa mosunod:
- Kung ang usa ka kliyente makadawat usa ka hangyo, sama sa usa ka browser o aplikasyon, kini mosulay sa pagkonektar sa server.
- Sa diha nga ang usa ka load balancer makadawat og usa ka hangyo, kini rota niini ngadto sa usa sa mga server sa usa ka server nga grupo base sa natukod nga mga sumbanan sa algorithm (o uma).
- Ang server makadawat sa hangyo sa koneksyon ug motubag sa kliyente pinaagi sa load balancer.
- Sa diha nga ang load balancer makadawat sa tubag, kini motakdo sa IP address sa kliyente uban sa IP address sa pinili nga server. Pagkahuman niana, ang tubag gipadala kauban ang pakete.
- Ang SSL offload mao ang proseso sa pag-decrypting sa datos gamit ang Security Socket Layer encryption protocol aron dili na kinahanglan ang mga server.
- Ang proseso gisubli hangtod mahuman ang sesyon.
Mga Pamaagi sa Pagbalanse sa Load
Aron mapili kung kinsa sa mga server sa usa ka server farm ang makadawat sa sunod nga hangyo, ang matag pamaagi sa pagbalanse sa load naggamit ug usa ka set sa mga pamatasan. Adunay lima ka kasagarang mga pamaagi alang sa pagbalanse sa load:
- Round Robins: Kini ang default nga pamaagi, ug kini molihok sama sa paminawon. Ang load balancer nag-apod-apod sa mga hangyo sa usa ka rotating pattern, sugod sa unang server sa grupo ug mopadayon ngadto sa ubos, diin kini naghulat nga tawagan pag-usab. Kini nga pamaagi nagsiguro nga ang matag server nagdumala sa halos parehas nga gidaghanon sa mga koneksyon.
- Timbang nga Round Robin: Kini nga pamaagi naghatag sa matag server og gibug-aton (o gusto) nga kasagarang katimbang sa kapasidad niini. Ang daghang mga hangyo nga madawat sa usa ka server, mas taas ang gibug-aton. Pananglitan, ang usa ka server nga adunay gibug-aton nga kantidad nga duha makadawat kaduha sa daghang mga hangyo kaysa usa ka server nga adunay gibug-aton nga kantidad nga usa.
- Malagkit nga Sesyon: Kini nga pamaagi, nailhan usab nga pagpadayon sa sesyon, nagkonektar sa pipila nga mga kliyente ug mga server sa gidugayon sa usa ka sesyon. Aron maestablisar ang link, ang load balancer mogamit ug cookie o IP address sa user aron mailhan ang usa ka attribute sa user. Kung matukod na ang koneksyon, ang mga hangyo sa tiggamit idirekta sa parehas nga server hangtod matapos ang sesyon. Gi-optimize niini ang mga kapanguhaan sa network samtang gipauswag usab ang kasinatian sa gumagamit.
- Labing Gamay nga mga Koneksyon: Kini nga estratehiya nagtuo nga ang tanang hangyo moresulta sa patas nga palas-anon sa server. Ingon nga resulta, ang server nga adunay pinakagamay nga gidaghanon sa mga hangyo makadawat sa sunod nga hangyo.
- IP Hash: Kini nga algorithm nagmugna og usa ka talagsaon nga hash nga yawe base sa tinubdan sa kliyente ug server ug destinasyon nga mga IP address. Ang yawe gigamit sa pagruta sa hangyo ug gitugotan ang nawala nga koneksyon sa parehas nga server nga ipadayon.
Hardware vs. Mga Balanse sa Pag-load sa Software
Balanse sa Pag-load sa Hardware
Ang pisikal nga hardware, sama sa usa ka appliance, naglangkob sa hardware load balancers. Kini nga mga ruta sa trapiko sa mga server depende sa mga hinungdan sama sa gidaghanon sa mga kasamtangan nga koneksyon, paggamit sa processor, ug performance sa server. Ang mga tigbalanse sa load sa hardware adunay proprietary firmware nga kinahanglang mamentinar ug i-update kung magamit na ang bag-ong mga bersyon ug pag-ayo sa seguridad.
Ang mga balanse sa load sa hardware kasagarang naghatag og mas taas nga performance ug kontrol, ingon man ang mas lapad nga mga kapabilidad sama sa Kerberos authentication ug SSL hardware acceleration, apan nagkinahanglan sila og pipila ka lebel sa pagdumala ug pagmentinar nga kahanas. Tungod kay ang mga hardware load balancer dili kaayo flexible ug scalable kay sa software load balancers, adunay kalagmitan sa sobra nga paghatag sa mga hardware load balancer.
Balanse sa Load sa Software
Ang mga load balancer sa software kasagarang mas sayon i-set up kay sa ilang mga hardware counterparts. Mas epektibo usab sila sa gasto ug mapahiangay, ug maayo sila nga nagtrabaho sa mga palibot sa pagpalambo sa software. Ang pamaagi sa software nagtugot kanimo sa pagpahiangay sa load balancer sa eksaktong mga kinahanglanon sa imong palibot. Ang dugang nga pagka-flexible mahimong moabut sa gasto sa dugang nga oras nga gigugol sa pag-set up sa load balancer.
Ang mga balancer sa software naghatag kanimo og mas dako nga pagka-flexible sa paghimo og mga pagbag-o ug pag-update kaysa mga hardware, nga adunay mas closed-box nga pamaagi. Ang mga prepackaged virtual machine mahimong gamiton isip software load balancers (VMs). Ang mga virtual nga makina makadaginot kanimo ug pipila ka oras sa pagtakda, apan mahimo nga wala nila ang tanan nga gamit nga magamit sa ilang mga katugbang sa hardware.
Yano nga Load Balancing Implementation
Atong gamiton ang Spring Cloud library sa paghimo og mga app nga nagkonektar sa ubang mga app sa balanse sa pagkarga. Samtang nagproseso sa mga hangyo sa layo nga serbisyo, dali namong makatukod og load balancing gamit ang bisan unsang teknik nga gusto namo. Tagda ang mosunod nga code isip pananglitan. Magsugod kita sa usa ka batakang aplikasyon sa server.
Ang server adunay usa ra ka HTTP endpoint ug maoperahan sa daghang mga higayon. Unya magtukod mi og app sa kliyente nga naggamit og Load Balancer aron ipang-apod-apod ang mga hangyo sa daghang mga higayon sa server.
server
Magsugod kita sa usa ka sukaranan Spring boot aplikasyon alang sa among pananglitan nga server:
Sa pagsugod, nag-inject mi ug customizable variable nga gitawag ug instance_ID. Nakatabang kini kanamo nga mailhan ang daghang mga higayon nga naglihok. Pagkahuman niana, naghimo kami usa ka HTTP GET endpoint nga nagbalik sa usa ka mensahe ug ID sa pananglitan.
Ang default nga instance nga adunay ID 1 mo-operate sa port 8080. Kinahanglan lang nga magdugang kami og pipila ka mga parameter sa programa aron maglunsad og ikaduhang higayon:
Kliyente
Atong tan-awon karon ang code sa kliyente. Dinhi diin moabut ang Load Balancer, busa magsugod kita pinaagi sa paglakip niini sa among aplikasyon:
Pagkahuman niana, naghimo kami usa ka pagpatuman sa ServiceInstanceListSupplier. Kini usa sa labing hinungdanon nga mga interface sa Load Balancer. Gipiho niini kung giunsa namo pagpangita ang mga instance sa serbisyo nga magamit.
Among i-hard-code ang duha ka managlahing instance sa among example server sa among sample nga aplikasyon. Nagdagan sila sa parehas nga sistema apan gigamit ang lainlaing mga pantalan:
Paghimo ug LoadBalancerConfiguration nga klase karon:
Kini nga klase adunay usa ra ka katuyoan: nagmugna kini usa ka balanse nga load nga magtutukod sa WebClient alang sa paghimo sa mga hangyo nga layo. Ang among anotasyon naggamit ug tinumotumo nga ngalan alang sa serbisyo.
Kini tungod sa kamatuoran nga lagmit dili nato mahibal-an ang tukma nga mga hostname ug mga pantalan alang sa pagpadagan sa mga higayon sa unahan. Ingon usa ka sangputanan, gigamit namon ang usa ka tinumotumo nga ngalan ingon usa ka placeholder, ug ang balangkas mopuli sa tinuud nga kasayuran kung nagpili kini usa ka nagdagan nga pananglitan.
Sunod, maghimo kita usa ka klase sa Configuration nga gamiton aron ma-instantiate ang among suplay sa instance sa serbisyo. Timan-i nga gigamit namon ang parehas nga alyas sama kaniadto:
Mahimo na namon nga matukod ang tinuud nga aplikasyon sa kliyente. Magpadala kita og 10 ka pangutana sa sample server gamit ang WebClient bean gikan sa sayo pa:
Atong makita gikan sa output nga kita nag-load pagbalanse tali sa duha ka managlahing mga higayon:
Pagbalanse sa Load sa Microservices
Ang arkitektura sa Microservice gigamit sa daghang mga kompanya, sama sa Netflix ug Amazon, aron mapalambo ang mga aplikasyon sa negosyo ingon usa ka hugpong sa mga serbisyo nga wala’y koneksyon. Ang hyperscale ug padayon nga paghatud alang sa komplikado nga mga aplikasyon duha ra sa mga hinungdan sa pagbalhin sa kini nga gipang-apod-apod, dili kaayo konektado nga arkitektura.
Kini nga mga grupo sa mga negosyo nagpatuman sa mga estratehiya sa Agile ug DevOps aron makahimo og mga app nga mas paspas ug adunay mas ubos nga rate sa kapakyasan kaysa tradisyonal nga mga pamaagi. Bisan pa, kinahanglan nimo nga maghimo usa ka balanse tali sa pagkakomplikado sa giapod-apod nga arkitektura ug mga gipangayo sa aplikasyon, mga kinahanglanon sa sukod, ug mga limitasyon sa oras-sa-merkado.
Sulod sa daghang mga tuig, ang mga tigdumala sa paghatud sa aplikasyon (ADCs) hinungdanon aron matubag ang mga kinahanglanon sa lebel sa serbisyo alang sa mga aplikasyon sa korporasyon nga gi-host sa lugar o sa panganod. Ang usa ka kliyente nga nakiglambigit sa usa ka microservices-based nga aplikasyon dili kinahanglan nga mahibal-an bahin sa mga higayon nga naghatag niini aron mapadako ang kliyente ug mga microservice nga independente.
Kini mao gayud ang decoupling nga gihatag sa usa ka reverse proxy o usa ka load balancer. Pag-usab, ang pagbalanse sa load mao ang solusyon sa pagsiguro nga ang mga microservice makadumala sa panginahanglan, seguridad, ug pagkaanaa.
Kung imong gikombinar ang tradisyonal nga North-South load balancing tali sa kliyente ug microservices-based nga mga app nga adunay East-West deployment para sa horizontal scalability, makakuha ka og dakong kadasig. Ang tumong mao ang pagpadayon sa luwas ug regulated nga palibot nga gikinahanglan sa IT nga walay pagsakripisyo sa kaabtik sa paglambo o Pag-automate sa DevOps Mga kinahanglanon.
Kaayohan
Ang pagbalanse sa load naghatag og lain-laing mga benepisyo pinaagi sa pagpausbaw sa paggamit sa kahinguhaan, paghatud sa datos, ug oras sa pagtubag alang sa mga website ug app nga adunay daghang trapiko, ingon man mga database nga makakuha og daghang mga pangutana. Ang pagbalanse sa load nagsiguro nga ang mga hangyo sa user matuman sa madali ug sakto sa mga senaryo nga taas ang trapiko.
Giluwas nila ang mga tiggamit sa pagsamot sa pag-atubang sa mga hinay nga programa ug mga kapanguhaan. Ang pagbalanse sa load makatabang usab sa paglikay sa downtime ug pagpayano sa seguridad, pagpaubos sa risgo sa pagkawala sa produktibidad ug kita alang sa imong kompanya.
- Ang pagbalanse sa load naghatag sa pagka-flexible sa pagdugang ug pagtangtang sa mga server sama sa gidiktar sa panginahanglan, dugang sa pagdumala sa trapiko ngadto sa labing maayo nga episyente. Tungod kay ang trapiko gibalhin sa ubang mga server sa panahon sa pagmentinar, mahimo usab nga ipahigayon ang pagmentinar sa server nga dili makabalda sa mga tiggamit.
- Ang pagbalanse sa load naghatag og built-in nga redundancy pinaagi sa pagbahin sa trapiko sa usa ka set sa mga server. Mahimo nimong ibalhin dayon ang load sa ubang mga server kung mapakyas ang usa, nga maminusan ang epekto sa mga tiggamit.
- Kung ang usa ka aplikasyon o paggamit sa website motubo, ang pagtaas sa trapiko mahimong makadaut sa iyang pasundayag kung dili epektibo nga pagdumala. Uban sa pagbalanse sa load, mahimo nimong idugang ang usa ka tinuod o virtual nga server aron matubag ang panginahanglan nga dili makabalda sa serbisyo. Ang load balancer nag-ila sa bag-ong mga server samtang sila nag-online ug dali nga gilakip kini sa operasyon. Kini nga pamaagi mao ang mas maayo sa pagbalhin sa usa ka website gikan sa usa ka overburdened server ngadto sa usa ka bag-o nga usa, nga sa kanunay naglakip sa pipila ka downtime.
Panapos
Ang pagbalanse sa load usa ka kritikal nga bahin sa kontemporaryong, fault-tolerant nga mga sistema. Makahimo ra kami og mga app nga nag-apod-apod sa mga hangyo sa daghang mga higayon sa serbisyo gamit ang lainlaing mga pamaagi sa pagbalanse sa load. Kinahanglan nga suportahan sa mga negosyo ang mga komplikado nga sistema sa IT aron mahatagan nga luwas ang mga aplikasyon.
Ang cross-domain microservices configuration, deployment, ug maintenance mahimong masayop, mahal, ug makahurot sa panahon. Kinahanglan nga gamiton sa IT ang automation, visibility, analytics, ug orchestration nga labing maayo nga mga gawi ug mga teknolohiya nga nahiuyon sa ilang abtik ug mga proseso sa DevOps aron mapadali ang pag-setup ug pagmentinar niini nga mga microservice.
Leave sa usa ka Reply