Istio Circuit Breaker: ho tima lijana tse nang le phoso

Matsatsi a phomolo a felile 'me re khutlile ka poso ea rona ea bobeli lethathamong la Istio Service Mesh.

Istio Circuit Breaker: ho tima lijana tse nang le phoso

Sehlooho sa kajeno ke Circuit Breaker, e fetoletsoeng ka boenjiniere ba motlakase oa Serussia e bolela "mohahlauli oa potoloho", ka puo e tloaelehileng - "mohahlauli oa potoloho". Ke feela ho Istio mochini ona ha o hakolle potoloho e khuts'oane kapa e imetsoeng, empa lijana tse nang le phoso.

Kamoo sena se lokelang ho sebetsa hantle kateng

Ha li-microservices li laoloa ke Kubernetes, ka mohlala ka har'a sethala sa OpenShift, li ikemela holimo le tlaase ho itšetlehile ka mojaro. Hobane li-microservices li sebetsa ka har'a li-pods, ho ka ba le maemo a mangata a microservice e kentsoeng sebakeng se le seng, 'me Kubernetes e tla tsamaisa likopo le ho leka-lekana pakeng tsa tsona. Mme - hantle - tsena tsohle li lokela ho sebetsa hantle.

Re hopola hore li-microservices li nyane ebile li na le nako e telele. Ephemerality, eo mona e bolelang bonolo ba ho hlaha le ho nyamela, hangata e nkoa e le tlaase. Tsoalo le lefu la ketsahalo e 'ngoe ea microservice ka pod ke lintho tse lebelletsoeng, OpenShift le Kubernetes li sebetsana hantle le sena,' me tsohle li sebetsa hantle - empa hape ka khopolo.

Kamoo e hlileng e sebetsang kateng

Joale ak'u nahane hore mohlala o itseng oa microservice, ke hore, setshelo, o se o sa sebelisoe: ebang ha o arabe (phoso ea 503), kapa, ke eng e sa thabiseng, e arabela, empa butle haholo. Ka mantsoe a mang, e fetoha glitchy kapa ha e arabele likōpo, empa ha e tlosoe ka mokhoa o itekanetseng ho tloha letamong. Ke eng e lokelang ho etsoa tabeng ee? Ho leka hape? Na ke lokela ho e tlosa ho sekemeng sa ho tsamaisa litsela? Hona "ho lieha haholo" ho bolela'ng - ke tse kae ka lipalo, 'me ke mang ea li khethang? Mohlomong ak'u iphe nako ea ho phomola 'me u leke hape hamorao? Haeba ho joalo, hamorao hakae?

Ho Ejection ea Letamo ke Eng ho Istio

'Me mona Istio e tla ho thusa ka mechine ea eona ea tšireletso ea Circuit Breaker, e tlosang ka nakoana lijana tse nang le phoso ho tloha letamong la lisebelisoa tsa ho tsamaisa le ho tsamaisa thepa, ho kenya ts'ebetsong mokhoa oa Pool Ejection.

E sebelisa leano la ho lemoha ka ntle, Istio e lemoha li-curve pods tse tsoileng tseleng ebe e li tlosa letamong la lisebelisoa bakeng sa nako e itseng, e bitsoang fensetere ea ho robala.

Ho bonts'a hore na sena se sebetsa joang ho Kubernetes sethaleng sa OpenShift, ha re qaleng ka setšoantšo sa li-microservices tse tloaelehileng tse sebetsang ho tloha mohlaleng o sebakeng sa polokelo. Li-Demos tsa Moqapi oa Red Hat. Mona re na le li-pods tse peli, v1 le v2, e 'ngoe le e' ngoe e tsamaisa setshelo se le seng. Ha melao ea tsamaiso ea Istio e sa sebelisoe, Kubernetes e feto-fetoha ho tsela e leka-lekaneng ea liroboto:

Istio Circuit Breaker: ho tima lijana tse nang le phoso

Ho itokisetsa ho hloleha

Pele o etsa Pool Ejection, o hloka ho theha molao oa ho tsamaisa Istio. Ha re re re batla ho aba likopo lipakeng tsa li-pods ka karolelano ea 50/50. Ho feta moo, re tla eketsa palo ea lijana tsa v2 ho tloha ho tse peli ho isa ho tse peli, joalo ka:

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

Hona joale re beha molao oa ho tsamaisa e le hore sephethephethe se ajoe pakeng tsa li-pods ka karolelano ea 50/50.

Istio Circuit Breaker: ho tima lijana tse nang le phoso
Mona ke hore na sephetho sa molao ona se shebahala joang:

Istio Circuit Breaker: ho tima lijana tse nang le phoso
U ka fumana phoso ka taba ea hore skrine sena ha se 50/50, empa 14: 9, empa ha nako e ntse e ea boemo bo tla ntlafala.

Ho etsa glitch

Joale ha re tima e 'ngoe ea lijana tse peli tsa v2 hore re be le setshelo se le seng se phetseng hantle sa v1, sejana se le seng se phetseng hantle sa v2 le sets'oants'o se le seng se fosahetseng sa v2:

Istio Circuit Breaker: ho tima lijana tse nang le phoso

Ho lokisa glitch

Kahoo, re na le setshelo se nang le phoso, 'me ke nako ea Pool Ejection. Re sebelisa tlhophiso e bonolo haholo, re tla qhelela ka thoko setshelo sena se hlolehileng ho merero efe kapa efe ea ho tsamaisa metsotsoana e 15 ka tšepo ea hore e tla khutlela boemong bo botle (e ka qala bocha kapa ho khutlisetsa ts'ebetso). Sena ke tsela eo config ena e shebahalang ka eona le liphetho tsa mosebetsi oa eona:

Istio Circuit Breaker: ho tima lijana tse nang le phoso
Istio Circuit Breaker: ho tima lijana tse nang le phoso
Joalo ka ha u bona, setshelo sa v2 se hlolehileng ha se sa sebelisoa bakeng sa likopo tsa ho tsamaisa hobane se tlositsoe letamong. Empa ka mor'a metsotsoana ea 15 e tla khutlela letamong ka bo eona. Haele hantle, re sa tsoa bonts'a hore na Pool Ejection e sebetsa joang.

Ha re qaleng kaho ea meralo

Pool Ejection, e kopantsoeng le bokhoni ba ho shebella ba Istio, e u lumella hore u qale ho haha ​​​​meralo ea ho fetola lijana tse nang le phoso ka bohona ho fokotsa, kapa ho se felise, nako ea ho theoha le ho hlōleha.

NASA e na le lepetjo le le leng le lerata - Ho hloleha Hase Khetho, eo mongoli oa eona a nkoang e le motsamaisi oa lifofane. Gene Kranz. E ka fetoleloa ka Serussia e le "Ho hlōleha ha se khetho," 'me moelelo mona ke hore ntho e' ngoe le e 'ngoe e ka etsoa hore e sebetse haeba u na le thato e lekaneng. Leha ho le joalo, bophelong ba sebele, ho hlōleha ha ho etsahale feela, ho ke ke ha qojoa, hohle le nthong e ’ngoe le e ’ngoe. Le mokhoa oa ho sebetsana le bona tabeng ea microservices? Ka maikutlo a rona, ho molemo ho se itšetlehe ka matla, empa ka bokhoni ba lijana, Kubernetes, RedHat OpenShiftle Istio.

Istio, joalokaha re ngotse ka holimo, e sebelisa mohopolo oa li-circuit breakers, tse ipakileng hantle lefatšeng la nama. 'Me joalo ka ha motlakase oa motlakase o tima karolo ea bothata ba potoloho, software ea Istio Circuit Breaker e bula kamano pakeng tsa molapo oa likopo le setshelo sa bothata ha ho e-na le ho hong ho phoso ka ntlha ea ho qetela, mohlala, ha seva se senyeha kapa se qala ho sebetsa. fokotsa lebelo.

Ho feta moo, tabeng ea bobeli ho na le mathata a mangata feela, kaha li-brake tsa setshelo se le seng ha li bake feela ho lieha ha litšebeletso tsa ho li fumana, 'me ka lebaka leo, li fokotsa ts'ebetso ea tsamaiso ka kakaretso, empa hape li hlahisa khafetsa. likopo tsa tšebeletso e seng e ntse e tsamaea butle, e mpefatsang boemo .

Circuit Breaker ka khopolo

Circuit Breaker ke moemeli ea laolang phallo ea likopo ho isa pheletsong. Ha ntlha ena e khaotsa ho sebetsa kapa, ho itšetlehile ka litlhophiso tse boletsoeng, e qala ho fokotseha, proxy e senya khokahanyo le setshelo. Sephethephethe se fetisetsoa litsing tse ling, ka lebaka la ho leka-lekanya thepa. Khokahano e lula e bulehile bakeng sa fensetere ea boroko e fanoeng, e re metsotso e 'meli, ebe e nkoa e butsoe halofo. Boiteko ba ho romella kopo e latelang bo tiisa boemo bo bong ba khokahano. Haeba ntho e 'ngoe le e' ngoe e lokile ka ts'ebeletso, khokahano e khutlela boemong ba ho sebetsa mme e boetse e koetsoe. Haeba ho ntse ho e-na le ho hong ho phoso ka ts'ebeletso, khokahanyo e khaotsoe 'me fensetere ea boroko e buloa hape. Mona ke hore na setšoantšo se nolofalitsoeng sa Circuit Breaker state se shebahala joang:

Istio Circuit Breaker: ho tima lijana tse nang le phoso
Ke habohlokoa ho hlokomela mona hore sena sohle se etsahala boemong ba, ka mantsoe a mang, meralo ea tsamaiso. Kahoo ka nako e 'ngoe u tla tlameha ho ruta likopo tsa hau ho sebetsa le Circuit Breaker, joalo ka ho fana ka boleng ba kamehla ha u arabela kapa, ha ho khoneha, ho hlokomoloha boteng ba tšebeletso. Paterone ea bulkhead e sebelisetsoa sena, empa e ka holimo ho sebaka sa sehlooho sena.

Circuit Breaker ka ts'ebetso

Mohlala, re tla tsamaisa mefuta e 'meli ea khothaletso ea rona ea microservice ho OpenShift. Mofuta oa 1 o tla sebetsa hantle, empa ho v2 re tla haha ​​​​ka ho lieha ho etsisa ho fokotseha ha seva. Ho sheba liphetho, sebelisa sesebelisoa thibella:

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

Istio Circuit Breaker: ho tima lijana tse nang le phoso
Ntho e 'ngoe le e 'ngoe e bonahala e sebetsa, empa ka litšenyehelo life? Ha u habanya feela, re na le boteng ba 100%, empa shebisisa - nako e telele ea transaction ke metsotsoana e 12. Ho hlakile hore sena ke tšitiso 'me se hloka ho atolosoa.

Ho etsa sena, re tla sebelisa Istio ho tlosa mehala ho lijana tse liehang. Sena ke seo tlhophiso e tsamaellanang e shebahalang ka eona ho sebelisa Circuit Breaker:

Istio Circuit Breaker: ho tima lijana tse nang le phoso
Mohala oa ho qetela o nang le parameter ea httpMaxRequestsPerConnection e bontša hore khokahanyo le eona e lokela ho khaoloa ha e leka ho theha e 'ngoe - ea bobeli - ho kopanya ho phaella ho e teng. Kaha setshelo sa rona se etsisa tšebeletso e liehang, maemo a joalo a tla hlaha nako le nako, ebe Istio e tla khutlisa phoso ea 503, empa sena ke seo thibelo e tla se bontša:

Istio Circuit Breaker: ho tima lijana tse nang le phoso

Ho lokile, re na le Circuit Breaker, ho latela eng?

Kahoo, re kentse ts'ebetso ea ho koala ka boiketsetso ntle le ho ama khoutu ea mohloli oa lits'ebeletso ho hang. Re sebelisa Circuit Breaker le Pool Ejection e hlalositsoeng ka holimo, re ka tlosa lijana tsa brake ho tloha letamong la lisebelisoa ho fihlela li khutlela ho tloaelehileng, 'me u hlahlobe boemo ba tsona ka lebelo le itseng - ka mohlala oa rona, ena ke metsotso e' meli (sleepWindow parameter).

Hlokomela hore bokhoni ba kopo ea ho araba phoso ea 503 bo ntse bo behiloe boemong ba khoutu ea mohloli. Ho na le maano a mangata a ho sebelisa Circuit Breaker, ho latela maemo.

Posong e latelang: Re tla bua ka ho latela le ho beha leihlo tse seng li hahelletsoe kapa li kentsoe habonolo ho Istio, hammoho le mokhoa oa ho hlahisa liphoso ka boomo tsamaisong.

Source: www.habr.com

Eketsa ka tlhaloso