Disponibilite aplikasyon yo pa janm te pran osi seryezman ke li ye jodi a lè nou itilize aplikasyon pou plis pase jis kominikasyon, kit pèsonèl oswa pwofesyonèl ak lè aplikasyon yo se biznis la.
Aplikasyon ki pa toujou sou entènèt, oswa ki enstab, pèdi itilizatè yo ak enpòtans, evantyèlman vin demode. Li te rive nan yon flash. Paske entènèt la pa janm dòmi ak opere 24 èdtan pa jou, 7 jou pa semèn, menm lide a dwe aplike nan aplikasyon yo.
Évolutivité enpòtan anpil pou fè sa epi asire disponiblite aplikasyon an. Balanse chaj se youn nan eleman ki pi enpòtan nan asire disponiblite. Anpil moun toujou kwè ke balans chaj ka akonpli ak yon script senp.
Sepandan, sa a se pa ka a. Li pou kont li bay aksè nan pwogram nan tout mond lan - nenpòt ki lè ak soti nan nenpòt aparèy.
Nan pòs sa a, nou pral pran yon gade pwofon nan balans chaj, algoritm li yo, ak ki jan li gen rapò ak mikwosèvis, pami lòt bagay. Ann kòmanse!
Ki sa ki balanse chaj?
Kòm demann lan pou yon sit entènèt oswa aplikasyon biznis ap grandi, yon sèl sèvè pral byento pa kapab okipe chaj la tout antye. Òganizasyon yo distribye kantite travay la sou plizyè serveurs yo nan lòd yo satisfè demann. Metòd sa a, ke yo rekonèt kòm "chaj balanse," anpeche yon sèl sèvè vin twò chaje, sa ki ka lakòz li ralanti, gout demann, oswa menm aksidan.
Balanse chaj distribye trafik rezo a egalman pou evite echèk akòz surcharge resous yo. Aplikasyon, sit entènèt, baz done, ak lòt resous òdinatè fè pi byen epi yo pi disponib lè l sèvi avèk metòd sa a. Li ede tou nan pwosesis apwopriye ak alè nan demann itilizatè yo.
Soti nan pèspektiv itilizatè a, balans chaj sèvi kòm yon entèmedyè invizib ant yon kliyan ak yon koleksyon serveurs, asire ke demann koneksyon yo pa tonbe. Aplikasyon, sit entènèt, baz done, ak sèvis sou entènèt ta gen plis chans tonbe si demann vin twò gwo san balans chaj.
Dè santèn de milye de demann itilizatè yo ka voye nan yon sèl sit entènèt ki gen anpil trafik an menm tan an. Sèvè miltip yo oblije ranpli paj wèb kòrèkteman ak kontni yo mande a, tankou tèks, imaj, videyo, ak difizyon odyo. Balanse chaj yo souvan itilize nan fèm sèvè sit entènèt ki gen anpil trafik, osi byen ke sèvè DNS, baz done, ak sit File Transfer Protocol (FTP).
Si yon sèl sèvè chaje twòp, sa ka fonksyone mal oswa menm aksidan. Ekilib chaj diminye chans pou D 'nan distribye demann itilizatè yo respire nan mitan yon koleksyon sèvè. Si youn nan sèvè yo nan gwoup la echwe, trafik yo deroute nan lòt sèvè nan gwoup la. Yon balans chaj otomatikman ajoute nouvo serveurs nan pwosesis distribisyon trafik la lè yo ajoute nan pisin sèvè a.
Ki jan balans chaj travay?
Li travay jan sa a:
- Lè yon kliyan resevwa yon demann, tankou atravè yon navigatè oswa yon aplikasyon, li eseye konekte ak sèvè a.
- Lè yon balans chaj resevwa yon demann, li wout li nan youn nan sèvè yo nan yon gwoup sèvè ki baze sou modèl etabli pa algorithm la (oswa fèm).
- Sèvè a resevwa demann koneksyon an epi reponn kliyan an atravè balans chaj la.
- Lè balans chaj la resevwa repons lan, li matche ak adrès IP kliyan an ak adrès IP sèvè chwazi a. Apre sa, repons lan transmèt ak pake a.
- SSL dechaj se pwosesis pou dechifre done lè l sèvi avèk pwotokòl chifreman Sekirite Socket Layer pou sèvè yo pa oblije.
- Pwosesis la repete jiskaske sesyon an fini.
Metòd balans chaj
Pou chwazi kilès nan sèvè yo nan yon fèm sèvè ki resevwa pwochen demann lan, chak teknik balans chaj itilize yon seri kritè. Gen senk apwòch tipik pou balanse chaj:
- Round Robin: Sa a se apwòch la default, epi li travay menm jan li son. Ekilib chaj la distribye demann nan yon modèl wotasyon, kòmanse ak premye sèvè a nan gwoup la ak pwosedi desann nan pati anba a, kote li tann yo dwe rele ankò. Metòd sa a asire ke chak sèvè ap manyen apeprè menm kantite koneksyon.
- Weighted Round Robin: Apwòch sa a bay chak sèvè yon pwa (oswa preferans) ki jeneralman pwopòsyonèl ak kapasite li. Plis demann yon sèvè resevwa, se pi gwo pwa a. Pou egzanp, yon sèvè ki gen yon valè pwa de resevwa de fwa plis demann pase yon sèvè ki gen yon valè pwa nan yon sèl.
- Sesyon kolan: Apwòch sa a, ke yo rele tou pèsistans sesyon, konekte sèten kliyan ak serveurs pou dire a nan yon sesyon. Pou etabli lyen an, balans chaj la sèvi ak yon bonbon oswa adrès IP itilizatè a pou idantifye yon atribi itilizatè. Yon fwa koneksyon an etabli, demann itilizatè a ap dirije sou menm sèvè a jiskaske sesyon an fini. Sa a optimize resous rezo yo pandan y ap amelyore eksperyans itilizatè a tou.
- Pi piti Koneksyon: Estrateji sa a sipoze ke tout demann rezilta nan yon chay sèvè egal. Kòm yon rezilta, sèvè a ki gen pi piti kantite demann resevwa demann kap vini an.
- IP Hash: Algorithm sa a jenere yon kle hash inik ki baze sou sous kliyan an ak sèvè a ak adrès IP destinasyon yo. Kle a sèvi ak wout demann lan epi li pèmèt yon koneksyon pèdi ak sèvè a menm yo dwe rekòmanse.
Materyèl vs. Load Balancer lojisyèl
Materyèl Load Balancer
Materyèl fizik, tankou yon aparèy, fè balanse chaj pyès ki nan konpitè. Wout sa yo trafik nan serveurs depann sou faktè tankou kantite koneksyon ki egziste deja, itilizasyon processeur, ak pèfòmans sèvè. Balansè chaj pyès ki nan konpitè yo gen firmwèr propriétaires ki dwe konsève ak mete ajou lè nouvo vèsyon ak fikse sekirite vin disponib.
Balanse chaj pyès ki nan konpitè souvan bay pi gwo pèfòmans ak kontwòl, osi byen ke yon seri pi laj nan kapasite tankou otantifikasyon Kerberos ak akselerasyon pyès ki nan konpitè SSL, men yo mande pou kèk nivo nan jesyon ak ekspètiz antretyen. Paske balanse chaj pyès ki nan konpitè yo mwens fleksib ak évolutive pase balanse chaj lojisyèl, gen yon tandans pou twòp ekipman pou balanse chaj pyès ki nan konpitè.
Load Balancer lojisyèl
Balanse chaj lojisyèl yo anjeneral pi fasil pou mete kanpe pase tokay pyès ki nan konpitè yo. Yo gen plis pri-efikas ak adaptab, epi yo travay byen ak anviwònman devlopman lojisyèl. Metòd lojisyèl an pèmèt ou Customize balans chaj la nan kondisyon egzak anviwònman ou a. Ogmantasyon fleksibilite a ka rive nan depans pou plis tan pase mete kanpe balans chaj la.
Balanse lojisyèl bay ou pi gwo fleksibilite pou fè modifikasyon ak mizajou pase sa yo kenkayri, ki gen yon apwòch ki pi fèmen. Machin vityèl preanbalaj yo ka itilize kòm balanse chaj lojisyèl (VM). Machin vityèl pral sove ou kèk tan anviwònman, men yo ka pa gen tout fonksyonalite ki disponib nan tokay pyès ki nan konpitè yo.
Senp chaj balanse aplikasyon
Nou pral sèvi ak bibliyotèk Spring Cloud pou bati apps ki konekte ak lòt apps nan yon fason balanse chaj. Pandan w ap trete demann sèvis aleka, nou ka fasilman konstwi balans chaj lè l sèvi avèk kèlkeswa teknik nou renmen. Konsidere kòd sa a kòm yon egzanp. Nou pral kòmanse ak yon aplikasyon sèvè debaz.
Sèvè a pral gen sèlman yon pwen final HTTP epi yo pral opere nan plizyè ka. Lè sa a, nou pral bati yon aplikasyon kliyan ki itilize Load Balancer pou distribye demann atravè plizyè ka sèvè.
sèvè
Nou kòmanse ak yon de baz Spring bòt aplikasyon pou sèvè egzanp nou an:
Pou kòmanse, nou enjekte yon varyab customizable ki rele instance_ID. Sa a ede nou fè distenksyon ant plizyè ka k ap fonksyone. Apre sa, nou kreye yon sèl pwen final HTTP GET ki retounen yon mesaj ak ID egzanp.
Enstans defo a ak ID 1 pral opere sou pò 8080. Nou sèlman bezwen ajoute kèk paramèt pwogram nan lanse yon dezyèm egzanp:
Kliyan
Ann gade kounye a kòd kliyan an. Sa a se kote Load Balancer antre, kidonk ann kòmanse pa enkòpore li nan aplikasyon nou an:
Apre sa, nou devlope yon aplikasyon ServiceInstanceListSupplier. Sa a se youn nan entèfas ki pi enpòtan nan Load Balancer. Li espesifye kijan nou lokalize ka sèvis aksesib yo.
Nou pral difisil-kode de ka separe nan sèvè egzanp nou an nan aplikasyon echantiyon nou an. Yo kouri sou menm sistèm nan men itilize pò separe:
Kreye yon klas LoadBalancerConfiguration kounye a:
Klas sa a gen yon sèl objektif: li kreye yon builder WebClient balanse chaj pou fè demann aleka. Anotasyon nou an anplwaye yon non fiktif pou sèvis la.
Sa a se akòz lefèt ke nou pral gen plis chans pa konnen non otè egzak yo ak pò pou kouri ka yo davans. Kòm yon rezilta, nou itilize yon non fiktiv kòm yon plas, epi fondasyon an pral ranplase enfòmasyon aktyèl la lè li chwazi yon egzanp k ap kouri.
Apre sa, ann fè yon klas Konfigirasyon ke yo pral itilize pou enstansye ekipman pou egzanp sèvis nou an. Pran nòt ke nou itilize alyas la menm jan anvan:
Nou kapab kounye a konstwi aplikasyon kliyan reyèl la. Ann voye 10 demann nan sèvè echantiyon an lè l sèvi avèk pwa WebClient ki soti pi bonè:
Nou ka wè nan pwodiksyon an ke nou ap balanse chaj ant de ka separe:
Balanse chaj nan Microservices
Plizyè konpayi yo te itilize achitekti mikwosèvis, tankou Netflix ak Amazon, pou devlope aplikasyon pou biznis yo kòm yon seri sèvis ki konekte. Hyperscale ak livrezon kontinyèl pou aplikasyon konplike se sèlman de nan rezon ki fè yo deplase nan distribiye, achitekti ki lach konekte sa a.
Ekip antrepwiz sa yo te aplike estrateji Agile ak DevOps pou yo ka pwodwi aplikasyon yo pi vit ak yon pousantaj echèk ki pi ba pase metòd tradisyonèl yo. Sepandan, ou dwe fè yon balans ant konpleksite achitekti distribiye a ak demann aplikasyon an, kondisyon echèl, ak limit tan pou mache.
Pandan anpil ane, kontwolè livrezon aplikasyon yo (ADC) yo te enpòtan anpil pou satisfè kondisyon nivo sèvis pou aplikasyon antrepriz ki òganize sou lokal oswa nan nwaj la. Yon kliyan angaje ak yon aplikasyon ki baze sou mikwo-sèvis pa bezwen konnen sou ka ki bay li yo nan lòd yo grandi kliyan an ak mikwo-sèvis poukont li.
Sa a se jisteman dekoupaj la bay pa yon prokurasyon ranvèse oswa yon balanse chaj. Yon fwa ankò, balans chaj se solisyon an pou asire ke mikwosèvis yo ka okipe demann, sekirite, ak disponiblite.
Lè ou konbine balans tradisyonèl chaj Nò-Sid ant kliyan ak aplikasyon ki baze sou mikwosèvis ak deplwaman East-West pou évolutivité orizontal, ou jwenn yon ogmantasyon sibstansyèl. Objektif la se kenbe anviwònman an sekirite ak reglemante ke IT egzije san sakrifye ladrès devlopman oswa DevOps automatisation kondisyon.
Benefis
Ekilib chaj bay divès benefis lè li amelyore itilizasyon resous, livrezon done, ak tan repons pou sit entènèt ak aplikasyon ki gen anpil trafik, ansanm ak baz done ki jwenn yon gwo kantite demann. Balanse chaj asire ke demann itilizatè yo satisfè rapidman ak kòrèkteman nan senaryo gwo trafik.
Yo sove itilizatè yo agravasyon nan fè fas ak pwogram ak resous paresseux. Ekilib chaj ede tou pou evite D' ak senplifye sekirite, bese risk pou yo pèdi pwodiktivite ak salè pou konpayi ou.
- Ekilib chaj bay fleksibilite pou ajoute ak retire serveurs jan demann mande, anplis jere trafik nan efikasite optimal. Paske trafik yo detounen nan lòt serveurs pandan antretyen, li posib tou pou antreprann antretyen sèvè san yo pa deranje itilizatè yo.
- Balanse chaj bay redondance entegre lè li divize trafik nan mitan yon seri serveurs. Ou ka imedyatman devye chaj la nan lòt serveurs si youn echwe, minimize enpak la sou itilizatè yo.
- Si itilizasyon yon aplikasyon oswa sit entènèt ap grandi, ogmante trafik la ta ka degrade pèfòmans li si li pa byen okipe. Avèk balans chaj, ou ka ajoute yon sèvè reyèl oswa vityèl pou satisfè demann san yo pa deranje sèvis. Balansè chaj la idantifye nouvo serveurs pandan y ap vin sou entènèt epi san efò enkòpore yo nan operasyon an. Metòd sa a pi bon pase migrasyon yon sit entènèt ki soti nan yon sèvè ki twò chaje nan yon nouvo, ki souvan enplike nan kèk D '.
konklizyon
Ekilib chaj se yon eleman kritik nan sistèm kontanporen, ki toleran fay. Nou ka tou senpleman konstwi apps ki distribye demann nan plizyè ka sèvis lè l sèvi avèk divès apwòch balans chaj. Biznis yo dwe sipòte sistèm IT konplike yo nan lòd yo bay aplikasyon yo an sekirite.
Konfigirasyon, deplwaman, ak antretyen mikwosèvis kwa-domèn yo ka gen tandans fè erè, chè, epi pran tan. IT ta dwe itilize automatisation, vizibilite, analiz, ak pi bon pratik ak teknoloji ki konpatib ak pwosesis ajil ak DevOps yo pou rann konfigirasyon ak antretyen mikwosèvis sa yo pi fasil.
Kite yon Reply