Table of Contents[Veşartin][Rêdan]
Hebûna serîlêdanan çu carî bi qasî îro ciddî nehatiye girtin dema ku em sepanan ji ragihandinê zêdetir bikar tînin, çi kesane çi pîşeyî û dema ku serîlêdan karsaz in.
Serlêdanên ku bi domdarî ne serhêl in, an ne aram in, bikarhêner û têkildariya xwe winda dikin, di dawiyê de kevn dibin. Ew bi lez çêbû. Ji ber ku înternet qet xew nake û rojê 24 rojên hefteyê 7 saetan dixebite, divê heman fikir li ser sepanan jî derbas bibe.
Scalability ji bo kirina vê yekê û misogerkirina hebûna serîlêdanê krîtîk e. Balansa barkirinê yek ji hêmanên herî girîng e ku di peydakirina hebûna de ye. Pir kes hîn jî bawer dikin ku hevsengiya barkirinê dikare bi skrîptek hêsan pêk were.
Lê belê, ev yek ne. Ew tenê gihîştina bernameyan li çaraliyê cîhanê peyda dike - di her dem û ji her cîhazê de.
Di vê postê de, em ê di nav tiştên din de li hevsengiya barkirinê, algorîtmayên wê, û ka ew çawa bi mîkroxizmetan re têkildar e, binihêrin. Were em destpêkin!
hevsengiya barkirinê çi ye?
Her ku daxwaziya malperek an serîlêdana karsaziyê mezin dibe, serverek yekane dê di demek nêzîk de nikaribe bi tevahî barkirinê rabe. Rêxistin ji bo ku daxwazê têr bikin barê xebatê li ser gelek serveran belav dikin. Ev rêbaz, ku wekî "balansek barkirinê" tê zanîn, serverek yekane ji bargiraniya zêde diparêze, ku dikare bibe sedema ku ew hêdî bibe, daxwazan davêje, an jî tewra têk bibe.
Hevsengkirina barkirinê seyrûsefera torê wekhev belav dike da ku ji ber bargiraniya çavkaniyê têkçûn nemîne. Serlêdan, malper, databases, û çavkaniyên din ên komputerê çêtir dikin û bi karanîna vê rêbazê bêtir berdest in. Di heman demê de ew di pêvajoyek rast û biwext a daxwazên bikarhêner de jî dibe alîkar.
Ji perspektîfa bikarhêner, hevsengiya barkirinê wekî navbeynkarek nedîtî di navbera xerîdar û berhevokek pêşkêşkeran de kar dike, dabîn dike ku daxwazên pêwendiyê neyên avêtin. Serlêdan, malper, databas û karûbarên serhêl bi îhtîmalek mezin dê hilweşin heke daxwaz bêyî hevsengiya barkirinê pir mezin bibe.
Bi sed hezaran daxwazên bikarhêner dikarin di heman demê de ji yek malperek seyrûsefera bilind re bêne şandin. Gelek pêşkêşker hewce ne ku ji bo rastnivîsandina rûpelên malperê bi naveroka daxwazkirî, wekî nivîs, wêne, vîdyoy, û weşana deng. Hevsengiya barkirinê bi gelemperî li zeviyên servera malperê yên bi seyrûsefera bilind, û her weha serverên DNS, databas, û malperên Protokola Veguheztina Pelê (FTP) tê bikar anîn.
Ger serverek yekane zêde barkirî be, ev dibe ku xirab bixebite an jî têk bibe. Balkêşkerên barkirinê bi belavkirina daxwazên bikarhêneran di nav berhevokek pêşkêşkeran de şansê dakêşanê kêm dikin. Ger yek ji pêşkêşkerên di komê de têk biçe, seyrûsefer ji nû ve ber bi serverên din ên komê ve tê rêve kirin. Balansek barkirinê gava ku ew li hewza serverê têne zêdekirin bixweber serverên nû di pêvajoya belavkirina trafîkê de zêde dike.
Berhevkirina barkirinê çawa dixebite?
Ew bi vî rengî dixebite:
- Dema ku xerîdar daxwazek werdigire, wek mînak bi gerokek an serîlêdanê, ew hewl dide ku bi serverê re têkildar be.
- Dema ku balansek bargiran daxwazek distîne, ew li ser bingeha qalibên sazkirî yên algorîtmayê (an çandiniyê) ber bi yek ji pêşkêşkerên komek serverê ve dişîne.
- Pêşkêşker daxwaza girêdanê distîne û bi navgîniya barkêşkerê bersivê dide xerîdar.
- Dema ku balansa barkirinê bersivê distîne, ew navnîşana IP-ya xerîdar bi navnîşana IP-ya servera hilbijartî re hevaheng dike. Li dû wê, bersiv bi pakêtê re tê şandin.
- Daxistina SSL pêvajoyek deşîfrekirina daneyan e ku bi karanîna protokola şîfrekirinê ya Ewlekariya Socket-a Ewlekariyê tê bikar anîn da ku server ne hewce be.
- Pêvajo heya ku rûniştin bi dawî bibe tê dubare kirin.
Rêbazên Balansa Barkirinê
Ji bo bijartina kîjan pêşkêşkerên di çandiniyek serverê de daxwaziya din werdigire, her teknîka hevsengkirina barkirinê komek pîvanan bikar tîne. Ji bo hevsengkirina barkirinê pênc nêzîkatiyên tîpîk hene:
- Dor Robin: Ev nêzîkatiya xwerû ye, û ew mîna ku xuya dike dixebite. Balansa barkirinê daxwazan bi rengek zivirî belav dike, ji servera yekem a di komê de dest pê dike û ber bi jêr ve diçe, ku li bendê ye ku ji nû ve were bang kirin. Ev rêbaz piştrast dike ku her server bi qasî heman hejmara girêdanan digire.
- Weighted Round Robin: Ev nêzîkatî ji her serverek re giraniyek (an tercîhek) ku bi gelemperî bi kapasîteya wê re têkildar e destnîşan dike. Zêdetir daxwazên serverek werdigire, giraniya wê jî bilindtir dibe. Mînakî, serverek bi giraniya wê du du caran ji serverek bi giraniya yekê daxwazek werdigire.
- Sticky Session: Ev nêzîkatî, ku wekî domdariya danişînê jî tê zanîn, ji bo dema danişînê hin xerîdar û pêşkêşkeran girêdide. Ji bo sazkirina girêdanê, balansa barkirinê cookie an navnîşana IP-ya bikarhêner bikar tîne da ku taybetmendiyek bikarhênerek nas bike. Dema ku pêwendiyek hate saz kirin, daxwazên bikarhêner ji heman serverê re têne rêve kirin heya ku danişîn bi dawî bibe. Ev çavkaniyên torê çêtir dike di heman demê de ezmûna bikarhêner jî baştir dike.
- Girêdanên Herî Kêm: Ev stratejî dihesibîne ku hemî daxwaz di barek serverek wekhev de encam didin. Wekî encamek, servera ku bi hejmara herî hindik daxwaznameyê re heye, daxwaznameya din distîne.
- IP Hash: Ev algorîtma li ser bingeha navnîşanên IP-ya çavkanî û mebesta xerîdar û serverê mifteyek hash a yekta diafirîne. Mift ji bo rêvekirina daxwazê tê bikar anîn û dihêle ku pêwendiyek winda ya bi heman serverê re ji nû ve were destpêkirin.
Hardware Vs. Balansa Barkirina Nivîsbariyê
Hardware Load Balancer
Zehfên fizîkî, wekî amûrek, hevsengên barkirina hardware pêk tîne. Van rêgezên seyrûsefera pêşkêşkeran li gorî faktorên wekî hejmara girêdanên heyî, karanîna pêvajoyê, û performansa serverê ve girêdayî ye. Balansên barkirina hardware xwedan firmware-ya xwedan heye ku dema ku guhertoyên nû û rastkirinên ewlehiyê peyda bibin divê were parastin û nûve kirin.
Balkêşên barkirina hardware bi gelemperî performans û kontrolek bilindtir peyda dikin, û her weha cûrbecûr kapasîteyên wekî rastkirina Kerberos û bilezkirina hardware SSL peyda dikin, lê ew hewceyê hin astek pisporiya rêveberî û lênêrînê hewce dikin. Ji ber ku hevsengên barkirina hardware ji hevsengên barkirina nermalavê kêmtir maqûl û berbelavtir in, meyl heye ku zêde-dabînkerên barkirina hardware-yê zêde bikin.
Balansa Barkirina Nivîsbariyê
Balkêşên barkirina nermalavê bi gelemperî ji hevpîşeyên xwe yên hardware têne saz kirin hêsantir in. Ew di heman demê de bihatir û bikêrtir in, û ew bi hawîrdorên pêşkeftina nermalavê re baş dixebitin. Rêbaza nermalavê dihêle hûn balansa barkirinê li gorî daxwazên tam ên hawîrdora xwe xweş bikin. Zêdebûna nermbûn dibe ku li ber lêçûna dema zêde ya ku ji bo sazkirina balansa barkirinê derbas dibe were.
Hevsengkerên nermalavê ji we re nermbûnek mezintir peyda dikin ku hûn guheztin û nûvekirinan ji yên hardware, ku xwedan nêzîkatiyek girtîtir in, peyda bikin. Makîneyên virtual ên pêşpakkirî dikarin wekî balansên barkirina nermalavê (VM) werin bikar anîn. Makîneyên virtual dê ji we re hin wextê mîhengê xilas bikin, lê dibe ku ew hemî fonksiyonên ku di hevpîşeyên xwe yên hardware de peyda nebin.
Pêkanîna Balansa Barkirina Hêsan
Em ê pirtûkxaneya Spring Cloud bikar bînin sepanan ava bikin ku bi rengek bargirandî bi sepanên din ve girêdide. Dema ku daxwazên karûbarê dûr têne hilberandin, em dikarin bi hêsanî hevsengiya barkirinê bi karanîna teknîka ku em hez dikin ava bikin. Koda jêrîn wekî mînakek bifikirin. Em ê bi serîlêdana serverek bingehîn dest pê bikin.
Dê server tenê yek xala dawiya HTTP-ê hebe û dê di çend mînakan de were xebitandin. Dûv re em ê serîlêdanek xerîdar ava bikin ku Load Balancer bikar tîne da ku daxwazan li gelek mînakên serverê belav bike.
Server
Em bi bingehek bingehîn dest pê dikin Bihara biharê serîlêdana ji bo servera meya nimûne:
Ji bo destpêkirinê, em guhêrbarek xwerû ya bi navê instance_ID derdixin. Ev ji me re dibe alîkar ku em di navbera gelek mînakên ku dixebitin de cûdahiyê bikin. Li dû wê, em xalek dawiya HTTP GET-ê ya yekane ku peyamek û ID mînakek vedigerîne diafirîne.
Mînaka xwerû ya bi ID 1-ê dê li ser porta 8080-ê bixebite. Em tenê hewce ne ku çend pîvanên bernameyê zêde bikin da ku mînakek duyemîn bidin destpêkirin:
Kirrîxwaz
Ka em niha li koda xerîdar binêrin. Li vir Load Balancer tê de ye, ji ber vê yekê em dest bi tevlêkirina wê di serlêdana xwe de bikin:
Li dû wê, em pêkanînek ServiceInstanceListSupplier pêşve dibin. Ev yek ji navnîşên herî girîng ên di Load Balancer de ye. Ew diyar dike ka em çawa mînakên karûbarê gihîştî bi cih dikin.
Em ê di serîlêdana nimûneya xwe de du mînakên cihêreng ên servera xweya nimûne kod bikin. Ew li ser heman pergalê dixebitin lê portên cihêreng bikar tînin:
Niha çînek LoadBalancerConfiguration biafirînin:
Vê polê tenê armancek heye: ew çêkerek WebClient-a-barkirî ji bo çêkirina daxwazên dûr diafirîne. Şîrovekirina me ji bo karûbarê navek xeyalî bikar tîne.
Ev ji ber vê yekê ye ku em ê bi îhtîmalek mezin navên mêvandar û portên rastîn ên ji bo rêvekirina mînakên pêşwext nizanin. Wekî encamek, em navek xeyalî wekî cîhgirek bikar tînin, û dema ku ew mînakek xebitandinê hildibijêre dê çarçove şûna agahdariya rastîn bigire.
Dûv re, werin em çînek Veavakirinê çêbikin ku dê ji bo destnîşankirina peydakirina mînaka karûbarê me were bikar anîn. Bala xwe bidinê ku em heman navên berê bikar tînin:
Naha em dikarin serîlêdana xerîdar a rastîn ava bikin. Werin em 10 pirsan bişînin servera nimûneyê ku bi karanîna WebClient bean ji berê ve hatî bikar anîn:
Em dikarin ji derketinê bibînin ku em di navbera du mînakên cihêreng de hevsengiya barkirinê dikin:
Balansa barkirinê di Microservices de
Mîmariya Microservice ji hêla gelek pargîdaniyan ve, mîna Netflix û Amazon, tê bikar anîn da ku serîlêdanên karsaziyê wekî komek karûbarên bi hev ve girêdayî pêşve bibin. Ji bo sepanên tevlîhev radestkirina hîperscale û domdar tenê du ji sedemên çûna ber bi vê mîmariya belavbûyî, ve girêdayî ye.
Tîmên van pargîdaniyan stratejiyên Agile û DevOps bicîh kirine da ku ji rêbazên kevneşopî zûtir û bi rêjeyek têkçûnek kêmtir serîlêdanan hilberînin. Lêbelê, divê hûn di navbera tevliheviya mîmariya belavkirî û daxwazên serîlêdanê, pêdiviyên pîvanê, û tixûbên dem-bazarê de balansek çêbikin.
Ev çend sal in, kontrolkerên radestkirina serîlêdanê (ADC) ji bo bicîhanîna daxwazên asta karûbarê ji bo serîlêdanên pargîdanî yên ku li ser bingehê an li ewr têne mêvandar kirin krîtîk in. Xerîdarek ku bi serîlêdanek mîkroxizmetkar ve mijûl dibe ne hewce ye ku di derheqê mînakên ku wê peyda dikin de zanibe da ku xerîdar û mîkroxizmetên serbixwe mezin bike.
Ev bi rastî veqetînek e ku ji hêla proxy berevajî an balansek barkirinê ve hatî peyda kirin. Dîsa, hevsengkirina barkirinê çareseriyek e ku pê ewle bibe ku mîkroxizmet dikarin daxwaz, ewlehî û hebûna xwe bi rê ve bibin.
Gava ku hûn hevsengiya barkirina kevneşopî ya Bakur-Başûr di navbera serîlêdanên xerîdar û mîkro-servîs-based de bi bicîhkirina Rojhilat-Rojava re ji bo pîvandina horizontî tevdigerin, hûn zêdebûnek girîng distînin. Armanc ev e ku meriv hawîrdora ewledar û birêkûpêk a ku ji hêla IT-ê ve tê xwestin biparêze bêyî ku qurbanîdana pêşkeftinê an jî bike Otomasyona DevOps Pêdiviyên
Alîkariyên
Hevsengiya barkirinê bi baştirkirina karanîna çavkaniyê, radestkirina daneyê, û dema bersivdayînê ji bo malper û sepanên bi seyrûsefera bilind, û her weha databasên ku hejmareke mezin ji pirsan digirin, feydeyên cihêreng peyda dike. Balansa barkirinê piştrast dike ku daxwazên bikarhêner di senaryoyên seyrûsefera bilind de zû û rast têne bicîh kirin.
Ew bikarhêneran ji aloziya mijûlbûna bi bername û çavkaniyên sist xilas dikin. Di heman demê de hevsengkirina barkirinê jî dibe alîkar ku hûn ji demdirêjiyê dûr bikevin û ewlehiyê hêsan bikin, xetera windabûna hilberandin û dahata pargîdaniya we kêm bike.
- Hevsengiya barkirinê, ji bilî birêvebirina seyrûseferê berbi karbidestiya çêtirîn, nermbûnek peyda dike ku meriv serveran lê zêde bike û jê rake li gorî daxwazê. Ji ber ku seyrûsefer di dema lênêrînê de ber bi serverên din ve tê veguheztin, di heman demê de mimkun e ku meriv lênihêrîna serverê jî bêyî astengkirina bikarhêneran bike.
- Hevsengkirina barkirinê bi dabeşkirina seyrûseferê di nav komek serveran de zêdebûnek çêkirî peyda dike. Heke yek têk neçe, hûn dikarin tavilê barkirinê berbi serverên din vegerînin, bandora li ser bikarhêneran kêm bikin.
- Ger karanîna serîlêdanek an malperek mezin bibe, ger bi bandor neyê girtin seyrûsefera zêde dibe ku performansa wê xirab bike. Bi hevsengiya barkirinê re, hûn dikarin serverek rastîn an virtual lê zêde bikin da ku daxwazê bicivin bêyî ku karûbar têk bibin. Balansa barkirinê dema ku ew serhêl têne serverên nû nas dike û wan bi hêsanî di nav operasyonê de digire. Ev rêbaz ji koçberkirina malperek ji serverek bargirandî ber bi yek nû ve, ku bi gelemperî hin demên dakêşanê vedihewîne, tercîh e.
Xelasî
Hevsengkirina barkirinê hêmanek krîtîk a pergalên hevdem, toleransê xelet e. Em dikarin bi hêsanî serîlêdanên ku bi karanîna cûrbecûr nêzîkatiyên hevsengiya barkirinê serlêdanan li gelek mînakên karûbarê belav dikin ava bikin. Divê karsazî pergalên IT-ê yên tevlihev piştgirî bikin da ku serîlêdanan bi ewlehî peyda bikin.
Veavakirin, bicihkirin û domandina mîkroxizmetên cross-domain dibe ku xeletî, biha, û dem-dixwez be. Pêdivî ye ku IT pratîk û teknolojiyên çêtirîn otomatî, xuyangî, analîtîk, û orkestrasyonê bikar bîne ku bi pêvajoyên wan ên lehengî û DevOps re hevaheng in da ku sazkirin û domandina van mîkroxizmetan hêsantir bike.
Leave a Reply