Istio Circuit Breaker: fa'agata pusa fa'aletonu

Ua uma aso malolo ma ua matou toe foi mai ma le matou pou lona lua i le Istio Service Mesh series.

Istio Circuit Breaker: fa'agata pusa fa'aletonu

O le autu o aso nei o le Circuit Breaker, lea na faaliliuina i le inisinia eletise Rusia o lona uiga o le "vaavaaia", i le gagana masani - "vaavaaia". Na'o Istio e le motusia ai e lenei masini se ta'amilosaga pu'upu'u po'o le mamafa tele, ae fa'aletonu pusa.

Fa'afefea e tatau ona galue lelei lenei mea

Pe a pulea e Kubernetes microservices, mo se faʻataʻitaʻiga i totonu o le OpenShift platform, latou te otometi lava ona fua i luga ma lalo e fuafua i le uta. Talu ai ona o microservices o loʻo tamomoe i pods, e mafai ona tele faʻataʻitaʻiga o se koneteina microservice i luga o le tasi pito, ma o Kubernetes o le a faʻatautaia talosaga ma uta paleni i le va o latou. Ma - lelei - o nei mea uma e tatau ona lelei atoatoa.

Matou te manatua o microservices e laiti ma ephemeral. Ephemerality, o lona uiga iinei o le faigofie o le faʻaalia ma le mou atu, e masani ona manatu faatauvaa. O le fanau mai ma le maliu o se isi faʻataʻitaʻiga o se microservice i totonu o se pod o ni mea e faʻamoemoeina, OpenShift ma Kubernetes e faʻatautaia lelei lenei mea, ma e lelei mea uma - ae toe fai i le teori.

E faapefea ona aoga

Vaʻai nei o se faʻataʻitaʻiga faʻapitoa o se microservice, o lona uiga, o se atigipusa, ua le mafai ona faʻaaogaina: a le o le tali mai (sese 503), pe, o le a le mea e sili atu le le fiafia, e tali mai, ae lemu. I se isi faaupuga, e avea ma glitchy pe le tali atu i talosaga, ae e le otometi ona aveesea mai le vaitaele. O le a le mea e tatau ona fai i lenei tulaga? Toe taumafai? E tatau ona ou aveese mai le faiga o auala? Ma o le a le uiga o le "telegese" - e fia le numera, ma o ai na te fuafuaina? Masalo na'o se malologa ae toe taumafai mulimuli ane? Afai o lea, e fia mulimuli ane?

O le a le Pool Ejection i Istio

Ma o iinei e sau ai Istio e laveai ma ana masini puipuia o le Circuit Breaker, lea e aveese ai mo se taimi le tumau koneteina sese mai le auala ma le faapaleniina o le vaitaele punaoa, faʻatinoina le faiga o le Pool Ejection.

I le fa'aaogaina o se ta'iala e iloa ai, e iloa ai e Istio ni pupuni o le fogafale e le o se laina ma aveese mai le vaita'ele o puna'oa mo se taimi ua fa'atulaga, e ta'ua o le faamalama moe.

Ina ia faʻaalia pe faʻapefea ona galue lenei mea i Kubernetes i luga o le OpenShift platform, seʻi o tatou amata i se faʻamalama o microservices masani galue mai le faʻataʻitaʻiga i le fale teu oloa. Red Hat Developer Demos. O iinei e lua a matou pusa, v1 ma le v2, e ta'i tasi le atigipusa. A le fa'aogaina tulafono fa'a-Istio, e fa'aletonu le Kubernetes i le paleni tutusa o le ta'amilosaga ta'amilosaga:

Istio Circuit Breaker: fa'agata pusa fa'aletonu

Sauni mo se fa'alavelave

A'o le'i faia le Pool Ejection, e te mana'omia le faia o se tulafono fa'atonutonu Istio. Fa'apea tatou te manana'o e tufa talosaga ile va o pods ile fua faatatau 50/50. E le gata i lea, o le a matou faʻateleina le numera o pusa v2 mai le tasi i le lua, pei o lenei:

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

Ole taimi nei ua matou setiina se tulafono faʻatonutonu ina ia tufatufa atu fefaʻatauaiga i le va o pods ile 50/50 ratio.

Istio Circuit Breaker: fa'agata pusa fa'aletonu
E fa'apea le i'uga o lea tulafono:

Istio Circuit Breaker: fa'agata pusa fa'aletonu
E mafai ona e suʻeina masei i le mea moni e le o 50/50 lenei lau, ae 14: 9, ae i le aluga o taimi o le a faʻaleleia le tulaga.

Faia o se faaletonu

Se'i tatou tapeina se tasi o koneteina v2 e lua ina ia maua se tasi pusa v1 maloloina, tasi pusa v2 maloloina ma le isi v2 fa'aletonu:

Istio Circuit Breaker: fa'agata pusa fa'aletonu

Fa'asalaina le fa'aletonu

O lea la, o lo'o i ai le matou koneteina fa'aletonu, ma ua o'o i le taimi mo le Pool Ejection. I le faʻaaogaina o se faʻaoga faigofie, o le a matou faʻateʻaina lenei atigipusa le manuia mai soʻo se auala faʻatautaia mo le 15 sekone i le faʻamoemoe o le a toe foʻi i se tulaga maloloina (pe toe amata pe toe faʻaleleia le faʻatinoga). O le mea lea e foliga mai ai lenei config ma taunuuga o ana galuega:

Istio Circuit Breaker: fa'agata pusa fa'aletonu
Istio Circuit Breaker: fa'agata pusa fa'aletonu
E pei ona e va'ai, ua le toe fa'aogaina le atigipusa v2 fa'aletonu mo fa'atonuga fa'ata'ita'i ona ua aveese mai le vaita'ele. Ae a maeʻa le 15 sekone o le a otometi lava ona toe foʻi i le vaitaele. O le mea moni, na matou faʻaalia le auala e galue ai Pool Ejection.

Tatou amata fau le faufale

Pool Ejection, faʻatasi ma le malosi o le mataʻituina o Istio, e mafai ai ona e amata fausia se faʻavae mo le suia otometi pusa faʻaletonu e faʻaitiitia, pe a le faʻaumatia, taimi faʻaletonu ma toilalo.

E tasi le anava leotele a le NASA - Failure Is Not a Option, o le tusitala lea ua manatu o le faatonu o le vaalele. Gene Kranz. E mafai ona faaliliuina i le gagana Rusia o le "Failure is not a option," ma o le uiga iinei o mea uma e mafai ona galue pe afai e lava lou manaʻo. Ae ui i lea, i le olaga moni, o toilalo e le na o le tupu, e le maalofia, i soo se mea ma i mea uma. Ma faʻafefea ona taulimaina i latou i le tulaga o microservices? I lo matou manatu, e sili atu le faʻalagolago e le o le malosi, ae i luga o le gafatia o pusa, Kubernetes, RedHat OpenShiftma Istio.

Istio, e pei ona matou tusia i luga, o loʻo faʻaaogaina le manatu o vaʻavaʻa, lea na faʻamaonia lelei i le lalolagi faaletino. Ma e pei lava o le eletise eletise e tapeina se vaega faʻafitauli o se matagaluega, Istio's software Circuit Breaker e tatalaina le fesoʻotaʻiga i le va o se vaitafe o talosaga ma se pusa faʻafitauli pe a iai se mea e sese i le pito, mo se faʻataʻitaʻiga, pe a paʻu le server pe amata faifailemu.

E le gata i lea, i le tulaga lona lua o loʻo i ai naʻo le tele o faʻafitauli, talu ai o taofi o le pusa e tasi e le gata e mafua ai le tuai o le faʻatuai i auaunaga e maua ai ma, o se taunuuga, faʻaitiitia le faʻatinoga o le faiga atoa, ae faʻatupuina foi le toe faia. talosaga i se auaunaga ua leva ona tuai, lea e na o le faateteleina o le tulaga .

Circuit Breaker i le talitonuga

Circuit Breaker o se sui e pulea le tafe o talosaga i se pito. A le toe galue lenei vaega pe, faʻatatau i faʻatulagaga ua faʻamaonia, amata ona faʻagesegese, o le sui e motusia le fesoʻotaʻiga ma le koneteina. Ona toe fa'afo'i atu lea o ta'avale i isi koneteina, ona o le paleni o uta. O lo'o tatala pea le feso'ota'iga mo se fa'amalama moe ua tu'uina atu, fai mai lua minute, ona fa'apea lea o le afa-matala. O se taumafaiga e lafo le isi talosaga e iloa ai le isi tulaga o le sootaga. Afai e lelei mea uma i le auaunaga, e toe foʻi le fesoʻotaʻiga i le tulaga galue ma toe tapunia. Afai o loʻo i ai pea se mea faʻaletonu i le tautua, ua motusia le fesoʻotaʻiga ma toe faʻaogaina le faamalama moe. O le fa'atusa lea o le fa'ata'ita'iga a le Circuit Breaker fa'afaigofie:

Istio Circuit Breaker: fa'agata pusa fa'aletonu
E taua le matauina iinei o nei mea uma e tupu i le tulaga o, e tautala ai, fausaga fausaga. O le mea lea, i se taimi e tatau ona e aʻoaʻo au tusi talosaga e galue ma Circuit Breaker, mo se faʻataʻitaʻiga e ala i le tuʻuina atu o se tau le aoga i le tali pe, pe a mafai, le amanaʻia le i ai o le auaunaga. O lo'o fa'aaogaina se fa'ata'ita'iga fa'apipi'i mo lenei mea, ae o lo'o i tua atu o le lautele o lenei tusiga.

Circuit Breaker i le faatinoga

Mo se faʻataʻitaʻiga, o le a matou faʻatautaia ni lomiga se lua o la matou fautuaga microservice i OpenShift. Fa'aliliuga 1 o le a lelei, ae i le v2 o le a matou fausia i se fa'atuai e fa'atusa le fa'agesegese i luga o le 'au'aunaga. Ina ia va'ai i'uga, fa'aoga le meafaigaluega siepi:

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

Istio Circuit Breaker: fa'agata pusa fa'aletonu
E foliga mai e aoga mea uma, ae o le a le tau? I le tepa muamua, matou te maua le 100% avanoa, ae vaʻavaʻai totoʻa - o le umi o fefaʻatauaiga e sili atu i le 12 sekone. O lenei mea e manino lava o se faʻalavelave ma e manaʻomia le faʻalauteleina.

Ina ia faia lenei mea, o le a matou faʻaogaina Istio e faʻaumatia ai telefoni e faʻagesegese pusa. O le mea lea e foliga mai e fetaui ma le faʻaogaina o le Circuit Breaker:

Istio Circuit Breaker: fa'agata pusa fa'aletonu
O le laina mulimuli ma le httpMaxRequestsPerConnection parameter faʻailoga e tatau ona motusia le fesoʻotaʻiga pe a taumafai e fai se isi - se lua - fesoʻotaʻiga e faʻaopoopo i le mea o iai. Talu ai ona o le matou koneteina faʻataʻitaʻiina se auaunaga lemu, o ia tulaga o le a tulaʻi mai i lea taimi ma lea taimi, ona toe faʻafoʻi lea e Istio se mea sese 503, ae o le mea lea o le a faʻaalia:

Istio Circuit Breaker: fa'agata pusa fa'aletonu

Ua lelei, o lo'o iai le matou Circuit Breaker, o le a le isi mea?

O lea la, na matou faʻatinoina le tapunia otometi e aunoa ma le paʻi i le faʻailoga autu o auaunaga lava ia. I le faʻaaogaina o le Circuit Breaker ma le Pool Ejection procedure o loʻo faʻamatalaina i luga, e mafai ona tatou aveese pusa taofi mai le vaitaele punaoa seia toe foʻi i le masani, ma siaki o latou tulaga i se taimi faʻapitoa - i la tatou faʻataʻitaʻiga, e lua minute lenei (sleepWindow parameter).

Manatua o le gafatia o se talosaga e tali atu i se mea sese 503 o loʻo faʻatulagaina pea i le tulaga o le code source. E tele taʻiala mo le faʻaogaina o le Circuit Breaker, faʻatatau i le tulaga.

I le isi pou: O le a tatou talanoa e uiga i le suʻeina ma le mataʻituina ua uma ona fausia i totonu pe faigofie ona faʻaopoopo i Istio, faʻapea foʻi ma le faʻaogaina o mea sese i totonu o le polokalama.

puna: www.habr.com

Faaopoopo i ai se faamatalaga