I-Istio Circuit Breaker: ikhubaza iziqukathi ezinephutha

Amaholide asephelile futhi sibuyile nokuthunyelwe kwethu kwesibili ochungechungeni lwe-Istio Service Mesh.

I-Istio Circuit Breaker: ikhubaza iziqukathi ezinephutha

Isihloko sanamuhla sithi I-Circuit Breaker, eyahunyushwa kunjiniyela kagesi waseRussia okusho ukuthi "i-circuit breaker", ngolimi oluvamile - "i-circuit breaker". Ku-Istio kuphela lo mshini awunqamuli isekethe emfishane noma elayishwe ngokweqile, kodwa iziqukathi ezinephutha.

Lokhu kufanele kusebenze kanjani kahle

Uma ama-microservices ephethwe yi-Kubernetes, ngokwesibonelo ngaphakathi kweplathifomu ye-OpenShift, akhuphuka ngokuzenzakalelayo aye phezulu naphansi kuye ngomthwalo. Ngenxa yokuthi ama-microservices asebenza ngama-pods, kungase kube nezimo eziningi ze-microservice ene-container endaweni eyodwa yokugcina, futhi i-Kubernetes izohambisa izicelo futhi ilayishe ibhalansi phakathi kwazo. Futhi - ngokufanelekile - konke lokhu kufanele kusebenze ngokuphelele.

Siyakhumbula ukuthi ama-microservices mancane futhi ajwayelekile. I-Ephemerality, lapha okusho ukuthi ukuvela kalula nokunyamalala, kuvame ukubukelwa phansi. Ukuzalwa nokufa kwesinye isenzakalo se-microservice ku-pod yizinto ezilindelekile impela, i-OpenShift ne-Kubernetes ikuphatha kahle lokhu, futhi yonke into isebenza kahle - kodwa futhi ngombono.

Isebenza kanjani ngempela

Manje cabanga ukuthi isenzakalo esithile se-microservice, okungukuthi, isitsha, asikwazi ukusetshenziswa: noma asiphenduli (iphutha 503), noma, yini engathandeki kakhulu, iphendula, kodwa kancane kakhulu. Ngamanye amazwi, iba yi-glitchy noma ayiphenduli ezicelweni, kodwa ayisuswa ngokuzenzakalelayo echibini. Yini okufanele yenziwe kuleli cala? Ukuzama futhi? Ingabe kufanele ngiyisuse kusikimu somzila? Futhi kusho ukuthini "ukunensa kakhulu" - zingaki izinombolo, futhi ubani onqumayo? Mhlawumbe vele uyinike ikhefu bese uzama futhi ngemva kwesikhathi? Uma kunjalo, kungakanani kamuva?

Kuyini ukukhishwa kwephuli e-Istio

Futhi lapha i-Istio isiza ngemishini yayo yokuvikela i-Circuit Breaker, esusa okwesikhashana iziqukathi ezinephutha kumthombo wezinsiza zokulinganisa nokulayisha, isebenzisa inqubo ye-Pool Ejection.

Isebenzisa isu lokuthola i-outlier, i-Istio ithola ama-curve pods angekho kulayini futhi iwasuse echibini lensiza isikhathi esibekiwe, esibizwa ngokuthi iwindi lokulala.

Ukukhombisa ukuthi lokhu kusebenza kanjani ku-Kubernetes endaweni yesikhulumi se-OpenShift, ake siqale ngesithombe-skrini sama-microservices asebenza ngokujwayelekile esibonelweni esisenqolobaneni. Amademo Onjiniyela Wezigqoko Ezibomvu. Lapha sinezinhlamvu ezimbili, i-v1 ne-v2, ngayinye isebenzisa isiqukathi esisodwa. Uma imithetho yomzila ye-Istio ingasetshenziswa, i-Kubernetes izenzakalela kumzila oyindilinga olinganiselayo olinganayo:

I-Istio Circuit Breaker: ikhubaza iziqukathi ezinephutha

Ilungiselela ukuphahlazeka

Ngaphambi kokwenza i-Pool Ejection, udinga ukudala umthetho womzila we-Istio. Ake sithi sifuna ukusabalalisa izicelo phakathi kwama-pods ngesilinganiso esingu-50/50. Ukwengeza, sizokwandisa inani leziqukathi ze-v2 ukusuka kwesisodwa siye kwezimbili, kanje:

oc scale deployment recommendation-v2 --replicas=2 -n tutorial

Manje sibeka umthetho womzila ukuze ithrafikhi isatshalaliswe phakathi kwama-pods ngesilinganiso esingu-50/50.

I-Istio Circuit Breaker: ikhubaza iziqukathi ezinephutha
Nakhu ukuthi umphumela walo mthetho ubukeka kanjani:

I-Istio Circuit Breaker: ikhubaza iziqukathi ezinephutha
Ungathola iphutha ngeqiniso lokuthi lesi sikrini asiyona i-50/50, kodwa i-14: 9, kodwa ngokuhamba kwesikhathi isimo sizoba ngcono.

Ukwenza iphutha

Manje ake sikhubaze esinye seziqukathi ezimbili ze-v2 ukuze sibe nesiqukathi esisodwa esinempilo se-v1, isitsha esisodwa esinempilo se-v2 nesiqukathi esisodwa esinephutha se-v2:

I-Istio Circuit Breaker: ikhubaza iziqukathi ezinephutha

Ukulungisa inkinga

Ngakho-ke, sinesitsha esinephutha, futhi sekuyisikhathi sokukhishwa kwephuli. Sisebenzisa ukulungiselelwa okulula kakhulu, sizokhipha lesi siqukathi esihlulekile kunoma yiziphi izikimu zomzila imizuzwana engu-15 ngethemba lokuthi sizobuyela esimweni esinempilo (siqala kabusha noma sibuyisele ukusebenza). Yilokhu lokhu kulungiselelwa kubukeka kanye nemiphumela yomsebenzi wayo:

I-Istio Circuit Breaker: ikhubaza iziqukathi ezinephutha
I-Istio Circuit Breaker: ikhubaza iziqukathi ezinephutha
Njengoba ubona, isiqukathi se-v2 esihlulekile asisasetshenziselwa izicelo zomzila ngoba sikhishiwe echibini. Kodwa ngemva kwemizuzwana engu-15 izobuyela ngokuzenzekelayo echibini. Empeleni, sisanda kukhombisa ukuthi i-Pool Ejection isebenza kanjani.

Ake siqale ukwakha izakhiwo

I-Pool Ejection, ehlangene namandla okuqapha e-Istio, ikuvumela ukuthi uqale ukwakha uhlaka lokushintsha ngokuzenzakalelayo iziqukathi ezingalungile ukuze kuncishiswe, uma kungaqedi, isikhathi sokuphumula kanye nokwehluleka.
 
I-NASA inesiqubulo esisodwa esikhulu - Ukwehluleka Akuyona Inketho, umbhali wayo othathwa njengomqondisi wendiza. Gene Kranz. Ingahunyushwa ngesiRashiya ngokuthi β€œUkwehluleka akuyona inketho,” futhi incazelo lapha ukuthi konke kungenziwa kusebenze uma unentando eyanele. Kodwa-ke, empilweni yangempela, ukwehluleka akwenzeki nje, akunakugwenywa, yonke indawo nakuyo yonke into. Futhi kanjani ukubhekana nabo esimweni se-microservices? Ngokombono wethu, kungcono ukunganciki emandleni, kodwa emandleni eziqukathi, Kubernetes, I-Red Hat OpenShiftfuthi Istio.

I-Istio, njengoba sibhale ngenhla, isebenzisa umqondo we-circuit breakers, oye wazibonakalisa kahle emhlabeni wenyama. Futhi njenge-breaker circuit kagesi ivala ingxenye yenkinga yesekethe, isofthiwe ye-Istio Circuit Breaker ivula uxhumano phakathi kwezicelo eziningi kanye nesiqukathi esinenkinga lapho kukhona okungahambi kahle ngephoyinti lokugcina, isibonelo, lapho iseva iphahlazeka noma iqala ukusebenza. yehlisa kancane ijubane.

Ngaphezu kwalokho, esimweni sesibili kunezinkinga eziningi kuphela, ngoba amabhuleki esitsha esisodwa awabangeli nje ukulibaziseka kwezinsizakalo ezifinyelela kuwo futhi, ngenxa yalokho, anciphisa ukusebenza kohlelo lonke, kodwa futhi akhiqize ngokuphindaphindiwe. izicelo zesevisi esivele isebenza kancane, okwenza isimo sibe sibi kakhulu .

I-Circuit Breaker ngokombono

I-Circuit Breaker ingummeleli olawula ukugeleza kwezicelo endaweni yokugcina. Uma leli phuzu liyeka ukusebenza noma, kuye ngezilungiselelo ezishiwo, iqala ukwehla, i-proxy iphula uxhumano nesiqukathi. Ithrafikhi ibe isiqondiswa kabusha kwezinye iziqukathi, ngenxa nje yokulinganisa ukulayisha. Uxhumano luhlala luvulekile efasiteleni elinikeziwe lokulala, isho imizuzu emibili, bese kuthathwa njengelivuliwe uhhafu. Umzamo wokuthumela isicelo esilandelayo unquma esinye isimo sokuxhuma. Uma konke KULUNGILE ngesevisi, uxhumano lubuyela esimweni sokusebenza futhi luphinde luvalwe. Uma kusenokuthile okungalungile ngesevisi, uxhumano luyanqanyulwa futhi iwindi lokulala liphinde linikwe amandla. Nakhu ukuthi umdwebo wesimo se-Circuit Breaker owenziwe lula ubukeka kanjani:

I-Istio Circuit Breaker: ikhubaza iziqukathi ezinephutha
Kubalulekile ukuqaphela lapha ukuthi konke lokhu kwenzeka ezingeni, okushoyo, izakhiwo zesistimu. Ngakho-ke ngesikhathi esithile kuzodingeka ufundise izinhlelo zakho zokusebenza ukusebenza ne-Circuit Breaker, njengokuhlinzeka ngevelu ezenzakalelayo ekuphenduleni noma, uma kungenzeka, ukuziba ukuba khona kwesevisi. Iphethini ye-bulkhead isetshenziselwa lokhu, kodwa ingaphezu kobubanzi balesi sihloko.

Circuit Breaker in practice

Isibonelo, sizosebenzisa izinguqulo ezimbili ze-microservice yethu yokuncoma ku-OpenShift. Inguqulo 1 izosebenza kahle, kodwa ku-v2 sizokwakha ngokubambezeleka ukuze silingise ukwehla kuseva. Ukuze ubuke imiphumela, sebenzisa ithuluzi ukuvimbezela:

siege -r 2 -c 20 -v customer-tutorial.$(minishift ip).nip.io

I-Istio Circuit Breaker: ikhubaza iziqukathi ezinephutha
Konke kubonakala kusebenza, kodwa izindleko zini? Uma uthi nhlΓ‘, sinokutholakala okungu-100%, kodwa bhekisisa - ubude besikhathi bokwenziwe bungamasekhondi angu-12. Ngokusobala lokhu kuwukuvinjelwa futhi kudinga ukunwetshwa.

Ukwenza lokhu, sizosebenzisa i-Istio ukususa izingcingo zokunciphisa iziqukathi. Yile ndlela ukulungiselelwa okuhambisanayo kubukeka ngayo kusetshenziswa i-Circuit Breaker:

I-Istio Circuit Breaker: ikhubaza iziqukathi ezinephutha
Ulayini wokugcina onepharamitha ye-httpMaxRequestsPerConnection ubonisa ukuthi ukuxhumana kufanele kunqanyulwe lapho uzama ukwakha enye - okwesibili - uxhumano ngaphezu kwalolu olukhona. Njengoba isiqukathi sethu silingisa isevisi ehamba kancane, izimo ezinjalo zizovela ngezikhathi ezithile, bese i-Istio izobuyisela iphutha le-503, kodwa lokhu yikho okuzoboniswa ukuvinjezelwa:

I-Istio Circuit Breaker: ikhubaza iziqukathi ezinephutha

Kulungile, sineCircuit Breaker, yini elandelayo?

Ngakho-ke, sisebenzise ukuvala shaqa okuzenzakalelayo ngaphandle kokuthinta ikhodi yomthombo yamasevisi ngokwawo nhlobo. Ngokusebenzisa i-Circuit Breaker kanye nenqubo ye-Pool Ejection echazwe ngenhla, singasusa iziqukathi zamabhuleki echibini lensiza zize zibuyele kokujwayelekile, futhi sihlole isimo sazo ngemvamisa ethile - esibonelweni sethu, lena imizuzu emibili (ipharamitha yokulala yeWindow).

Qaphela ukuthi ikhono lohlelo lokusebenza lokuphendula iphutha le-503 lisasethwe ezingeni lekhodi yomthombo. Kunamasu amaningi okusebenzisa i-Circuit Breaker, kuya ngesimo.

Eposini elilandelayo: Sizokhuluma ngokulandelela nokuqapha osekwakhelwe ngaphakathi noma okwengezwe kalula ku-Istio, kanye nendlela yokwethulwa kwamaphutha ngamabomu ohlelweni.

Source: www.habr.com

Engeza amazwana