Tha na saor-làithean seachad agus tha sinn air ais leis an dàrna post againn san t-sreath Istio Service Mesh.
Is e cuspair an latha an-diugh Circuit Breaker, a tha air eadar-theangachadh gu innleadaireachd dealain Ruiseanach a’ ciallachadh “circuit breaker”, ann an co-theacsa cumanta - “circuit breaker”. Is ann dìreach ann an Istio chan eil an inneal seo a’ dì-cheangal cuairt ghoirid no cus cuideim, ach soithichean lochtach.
Mar a bu chòir seo obrachadh gu dòigheil
Nuair a bhios microservices air an riaghladh le Kubernetes, mar eisimpleir taobh a-staigh an àrd-ùrlar OpenShift, bidh iad gu fèin-ghluasadach a ’sgèile suas is sìos a rèir an luchd. Leis gu bheil meanbh-sheirbheisean a’ ruith ann am pods, faodaidh iomadh suidheachadh a bhith ann de mhicro-sheirbheis soithich air aon cheann-uidhe, agus bidh Kubernetes a’ stiùireadh iarrtasan agus a’ luchdachadh cothromachadh eatorra. Agus - gu h-iomchaidh - bu chòir seo uile obrachadh gu foirfe.
Tha sinn a’ cuimhneachadh gu bheil meanbh-sheirbheisean beag agus neo-sheasmhach. Gu tric chan eilear a’ dèanamh dìmeas air neo-sheasmhachd, a tha an seo a’ ciallachadh cho furasta ‘s a tha e nochdadh agus a dhol à sealladh. Tha breith agus bàs eisimpleir eile de mhicro-sheirbheis ann am pod nan rudan ris a bheil dùil, tha OpenShift agus Kubernetes a’ làimhseachadh seo gu math, agus tha a h-uile dad ag obair gu math - ach a-rithist ann an teòiridh.
Mar a tha e dha-rìribh ag obair
A-nis smaoinich gu bheil eisimpleir sònraichte de mhicro-sheirbheis, is e sin, soitheach, air fàs neo-chliùiteach: an dara cuid chan eil e a 'freagairt (mearachd 503), no, dè a tha nas mì-thlachdmhor, bidh e a' freagairt, ach ro shlaodach. Ann am briathran eile, bidh e glitchy no a 'freagairt ri iarrtasan, ach chan eil e gu fèin-obrachail a thoirt air falbh bhon amar. Dè bu chòir a dhèanamh sa chùis seo? Gus feuchainn a-rithist? Am bu chòir dhomh a thoirt air falbh bhon sgeama slighe? Agus dè tha “ro shlaodach” a’ ciallachadh – cia mheud a tha ann an àireamhan, agus cò a bhios gan dearbhadh? Is dòcha dìreach thoir fois dha agus feuch ris a-rithist nas fhaide air adhart? Ma tha, dè cho fada às deidh sin?
Dè a th’ ann an Pool Ejection ann an Istio
Agus an seo tha Istio a’ tighinn gu teasairginn leis na h-innealan dìon Circuit Breaker aige, a bheir air falbh soithichean lochtach airson ùine ghoirid bhon amar goireas sligheachaidh is cothromachaidh luchdan, a’ cur an gnìomh modh Pool Ejection.
A’ cleachdadh ro-innleachd lorgaidh a-muigh, bidh Istio a’ lorg cromagan pod a tha a-mach à loidhne agus gan toirt a-mach às an amar ghoireasan airson ùine ro-shuidhichte, ris an canar uinneag cadail.
Gus sealltainn mar a tha seo ag obair ann an Kubernetes air an àrd-ùrlar OpenShift, tòisichidh sinn le dealbh-sgrìn de mhicro-sheirbheisean a tha ag obair gu h-àbhaisteach bhon eisimpleir san stòr
Ag ullachadh airson fàilligeadh
Mus dèan thu Pool Ejection, feumaidh tu riaghailt slighe Istio a chruthachadh. Canaidh sinn gu bheil sinn airson iarrtasan a sgaoileadh eadar pods ann an co-mheas 50/50. A bharrachd air an sin, àrdaichidh sinn an àireamh de shoithichean v2 bho aon gu dhà, mar seo:
oc scale deployment recommendation-v2 --replicas=2 -n tutorial
A-nis tha sinn a 'suidheachadh riaghailt slighe gus am bi trafaig air a chuairteachadh eadar pods ann an co-mheas 50/50.
Seo cò ris a tha toradh na riaghailt seo coltach:
Gheibh thu coire leis nach eil an scrion seo 50/50, ach 14:9, ach le ùine thig piseach air an t-suidheachadh.
A 'dèanamh glitch
A-nis leig leinn aon den dà shoitheach v2 a chuir dheth gus am bi aon inneal v1 fallain againn, aon inneal v2 fallain agus aon inneal v2 lochtach:
A 'càradh an glitch
Mar sin, tha inneal lochtach againn, agus tha an t-àm ann airson Pool Ejection. A’ cleachdadh config gu math sìmplidh, cuiridh sinn a-mach an soitheach seo a dh’ fhàillig bho sgeamaichean slighe sam bith airson 15 diogan an dòchas gun till e gu staid fhallain (an dàrna cuid ath-thòiseachadh no coileanadh a thoirt air ais). Seo cò ris a tha an rèiteachadh seo coltach agus toraidhean na h-obrach aige:
Mar a chì thu, chan eil an soitheach v2 a dh’ fhàillig air a chleachdadh tuilleadh airson iarrtasan slighe oir chaidh a thoirt a-mach às an amar. Ach às deidh 15 diogan tillidh e gu fèin-ghluasadach chun amar. Gu fìrinneach, sheall sinn dìreach mar a tha Pool Ejection ag obair.
Feuch an tòisich sinn a 'togail ailtireachd
Leigidh Pool Ejection, còmhla ri comasan sgrùdaidh Istio, leat tòiseachadh air frèam a thogail airson soithichean lochtach a chuir an àite gu fèin-ghluasadach gus ùine downt agus fàilligidhean a lughdachadh, mura cuir às.
Tha aon fhacal-suaicheantais aig NASA - Chan eil Failure na Roghainn, agus thathas den bheachd gur e an t-ùghdar an stiùiriche itealaich
Tha Istio, mar a sgrìobh sinn gu h-àrd, a 'cur an gnìomh bun-bheachd luchd-briseadh cuairte, a tha air a dhearbhadh gu math anns an t-saoghal chorporra. Agus dìreach mar a bhios inneal-brisidh cuairteachaidh dealain a’ tionndadh earrann duilgheadas de chuairt, bidh bathar-bog Istio Circuit Breaker a’ fosgladh a’ cheangail eadar sruth iarrtasan agus soitheach trioblaid nuair a tha rudeigin ceàrr air a’ phuing-deiridh, mar eisimpleir, nuair a thuit am frithealaiche no nuair a thòisich e air. Air do shocair.
A bharrachd air an sin, anns an dàrna cùis chan eil ann ach barrachd dhuilgheadasan, leis gu bheil breicichean aon shoitheach chan ann a-mhàin ag adhbhrachadh casg de dhàil anns na seirbheisean a tha ga ruigsinn agus, mar thoradh air sin, a ’lughdachadh coileanadh an t-siostam gu h-iomlan, ach cuideachd a’ gineadh grunn thursan. iarrtasan gu seirbheis a tha mar-thà slaodach, a nì dìreach an suidheachadh nas miosa.
Circuit Breaker ann an teòiridh
Tha Circuit Breaker na neach-ionaid a bhios a’ cumail smachd air sruthadh iarrtasan gu puing crìochnachaidh. Nuair a stadas a’ phuing seo ag obair no, a rèir nan roghainnean a chaidh a shònrachadh, a’ tòiseachadh a’ fàs nas slaodaiche, brisidh an neach-ionaid an ceangal ris a’ ghobhar. Thèid trafaic an uairsin ath-stiùireadh gu soithichean eile, dìreach mar thoradh air cothromachadh luchdan. Tha an ceangal fhathast fosgailte airson uinneag cadail sònraichte, abair dà mhionaid, agus an uairsin air a mheas leth-fhosgailte. Bidh oidhirp air an ath iarrtas a chuir a-steach a’ dearbhadh staid a’ cheangail a bharrachd. Ma tha a h-uile càil ceart gu leòr leis an t-seirbheis, tillidh an ceangal gu suidheachadh obrach agus a-rithist bidh e dùinte. Ma tha rudeigin ceàrr air an t-seirbheis fhathast, tha an ceangal air a dhì-cheangal agus tha an uinneag cadail air a chomasachadh a-rithist. Seo cò ris a tha diagram stàite Circuit Breaker coltach:
Tha e cudromach toirt fa-near an seo gu bheil seo uile a’ tachairt aig ìre, mar sin a bhruidhinn, ailtireachd siostam. Mar sin aig àm air choreigin feumaidh tu na tagraidhean agad a theagasg gus obrachadh le Circuit Breaker, leithid a bhith a’ toirt seachad luach bunaiteach mar fhreagairt no, ma ghabhas e dèanamh, a’ seachnadh gu bheil an t-seirbheis ann. Thathas a’ cleachdadh pàtran ceann mòr airson seo, ach tha e taobh a-muigh farsaingeachd an artaigil seo.
Circuit Breaker ann an cleachdadh
Mar eisimpleir, ruithidh sinn dà dhreach den mhion-sheirbheis molaidh againn air OpenShift. Obraichidh dreach 1 gu math, ach ann an v2 togaidh sinn dàil gus a bhith coltach ri slaodachadh air an fhrithealaiche. Gus na toraidhean fhaicinn, cleachd an inneal
siege -r 2 -c 20 -v customer-tutorial.$(minishift ip).nip.io
Tha e coltach gu bheil a h-uile dad ag obair, ach dè a chosgais? Aig a’ chiad sealladh, tha cothrom 100% againn, ach thoir sùil nas mionaidiche - tha an ùine malairt as àirde cho mòr ri 12 diogan. Tha seo gu soilleir na bhotal agus feumar a leudachadh.
Gus seo a dhèanamh, cleachdaidh sinn Istio gus cuir às do ghairmean gu soithichean slaodach. Seo mar a tha an rèiteachadh co-fhreagarrach coltach a’ cleachdadh Circuit Breaker:
Tha an loidhne mu dheireadh leis a’ pharameter httpMaxRequestsPerConnection a’ comharrachadh gum bu chòir an ceangal a bhith air a dhì-cheangal nuair a thathar a’ feuchainn ri ceangal eile - an dàrna fear - a chruthachadh a bharrachd air an fhear a th’ ann mar-thà. Leis gu bheil an soitheach againn coltach ri seirbheis slaodach, èiridh suidheachaidhean mar sin bho àm gu àm, agus an uairsin tillidh Istio mearachd 503, ach is e seo a sheallas an t-sèist:
Ceart gu leòr, tha Circuit Breaker againn, dè an ath rud?
Mar sin, chuir sinn an gnìomh dùnadh fèin-ghluasadach gun a bhith a’ beantainn ri còd stòr nan seirbheisean fhèin idir. A’ cleachdadh Circuit Breaker agus am modh-obrach Pool Ejection a tha air a mhìneachadh gu h-àrd, is urrainn dhuinn soithichean breic a thoirt air falbh bhon amar ghoireasan gus an till iad gu àbhaisteach, agus sùil a thoirt air an inbhe aca aig tricead sònraichte - san eisimpleir againn, is e seo dà mhionaid (parameter cadailWindow).
Thoir an aire gu bheil comas tagradh freagairt a thoirt do mhearachd 503 fhathast air a shuidheachadh aig ìre còd an tùs. Tha mòran ro-innleachdan ann airson Circuit Breaker a chleachdadh, a rèir an t-suidheachaidh.
Anns an ath phost: Bruidhnidh sinn mu dheidhinn an lorg agus an sgrùdadh a tha mar-thà air a thogail a-steach no air a chuir ri Istio gu furasta, a bharrachd air mar as urrainn dhut mearachdan a thoirt a-steach don t-siostam a dh’aona ghnothach.
Source: www.habr.com