Pārskats par veselības pārbaudes modeļiem

Blogs

Pārskats par veselības pārbaudes modeļiem

Daudziem izstrādātājiem ir ieviesti daži esošie veselības pārbaudes mehānismi, jo īpaši mūsdienās, mikropakalpojumu laikmetā, kad tika izstrādāta aizmugure. Es ļoti ceru, ka arī jūs to darāt. Ikreiz, kad jums ir kaut kas vienkāršs, kas vienkārši atgrūž zvanītāju vai sarežģītāku loģiku, ir labi apzināties dažādu veselības pārbaužu ieviešanas priekšrocības un trūkumus. Šajā rakstā es izskatīšu katra veida veselības pārbaudes un izpētīšu, kādas problēmas var atrisināt ar katru no tām.



python apkrāpta lapa pdf 2020

Kāpēc mums vispār ir vajadzīgas veselības pārbaudes?

Labs jautājums! Mums ir jāapsver, cik tālu es varu tikt galā ar īstenošanas atlikšanu. Veselības pārbaudēm ir vairāki iemesli, piemēram, stingri projektu termiņi, korporatīvā politika vai pārdevējam raksturīgas aparatūras sarežģītas konfigurācijas (es jūs nenosodu). Bet jums jāzina, ka tikai tāpēc, ka jūsu kods šķiet statisks, tas nenozīmē, ka tas darbojas vienādi, ja darbojas ilgāku laiku.

Jūs esat atkarīgs no datoru aparatūras, trešo pušu bibliotēkām, citu komandu uzturētajām atkarībām, un neviena no tām nesniedz 100% garantiju. Parasti jūs nevarat izveidot 100% uzticamu programmatūru neuzticamu komponentu virspusē. Jūsu pakalpojums neizdosies neilgi pēc pirmās izlaišanas ražošanā. Un, ja tas notiek, jums tas kaut kā ir jāatklāj. Mēs visi piekrītam, ka labāk to darīt pirms gala lietotājiem.



Neveiksmju veidi

Tipiskas darbības Java lietojumprogrammas kļūmes ir šādas.

Bugs

To izraisa katrs izstrādātājs tikai kodēšanas rakstura dēļ. Vidēji ir a dažas kļūdas uz 1000 koda rindām.



Atmiņas noplūdes

Atmiņas noplūde rodas, ja atkritumu savācējs nespēj pārstrādāt noteiktu kaudzes zonu, un šī zona laika gaitā pakāpeniski pieaug. JVM process vienkārši izies, ja tajā beigsies atmiņa, bet līdz tam tas izraisa lielāku GC paužu skaitu un laika gaitā zemāku veiktspēju.

Vītņu noplūde

Ja neaizverat savus resursus vai nepareizi pārvaldāt pavedienus, var rasties pavedienu noplūde. Tas pēkšņi novedīs jūsu JVM uz pilnīgu apstāšanos, kamēr CPU gatavojas griezties par 100%.

Konfigurācijas problēmas

Konfigurācijas problēmas ir biedējošas, jo tās var uztvert tajā pašā vidē, uz kuru tās atsaucas. Tas nozīmē, ka izvietošanas laikā jums būs jāsaskaras ar ražošanu saistītu konfigurācijas problēmu un otrādi. Nav svarīgi, vai jums ir jauks testu pārklājums un visa veida integrācijas un veiktspējas testi. Nepareiza konfigurācija var vienkārši iznīcināt jūsu mēģinājumu izlaist jaunu laidienu.

Strupceļi

Manis izmantotie JVM nepiedāvā strupceļa noteikšanu. Tas nozīmē, ka pavedieni, kas karājas strupceļā, vienkārši gaidīs mūžīgi, līdz JVM izies.

Savienojuma baseina nepareizas konfigurācijas

Ja nepārskatīsit visus savienojuma kopas iestatījumus, jūs riskējat, ka savienojuma pūlis sāks radīt kļūmes. Sekas var būt dažādas, bet parasti tās beidzas kā viena no iepriekš minētajām neveiksmēm.

Atlaišana

Vienkāršākais veids, kā jebkurā sistēmā ieviest kļūdu toleranci, ir ieviest atlaišanu. Jūs varat padarīt savus datus liekus, tos vairākkārt kopējot un slēpjot sliktos baitus, kā to dara RAID konfigurācija ar vairākiem cietajiem diskiem. Līdzīgi jūs varat arī padarīt datubāzes laiku lieku, turot un apkalpojot viena un tā paša ieraksta vairākas versijas.

pārvērst masīvu uz json javascript

Pakalpojumiem vissvarīgāk ir procesu padarīt lieku. Turpinot darboties vienlaikus vairākus procesus, tādēļ, ja kāds no tiem rīkojas nepareizi, citi var pārņemt darba slodzi. Protams, tas darbojas tikai tad, ja jums ir sava veida koordinācija. Parasti to veic, izmantojot veselības pārbaudes.

Veselības pārbaudes anatomija

Koordināciju, par kuru es runāju iepriekš, var veikt, piemēram, konteineru orķestrators vai slodzes līdzsvarotājs. Šo koordinatoru uzdevums ir slēpt ieviešanas informāciju no klientiem, izmantojot jūsu pakalpojumu kopu, un parādīt tos kā vienu loģisku vienību. Lai to izdarītu, viņiem jāplāno darba slodze tikai tiem pakalpojumiem, par kuriem ziņots, ka tie ir veselīgi. Viņi jautā katram no kopas esošajiem procesiem par savu veselību un, pamatojoties uz atbildi, rīkojas. Šīs darbības var būt dažādas. Daži no tiem ir:

  • Restartē
  • Brīdinājums
  • Satiksmes veidošana
  • Mērogošana
  • Izvietojumi

Veselības pārbaudes diagramma

kur nopirkt kleros

Veselības pārbaudes ieviešana

Jūs varat īstenot veselības pārbaudes daudzos veidos, un es jums parādīšu piemēru. Pēc tam mēs izpētīsim tipiskos kļūmju veidus, kurus tās spēj identificēt, un to efektivitāti.

Par piemēriem

Smilšu kasti ar iepriekš noteiktām veselības pārbaudes iespējām varat atrast vietnē https://github.com/gitaroktato/healthcheck-patterns . Es izmantošu sūtni, Traefik, Prometheus, Grafana, Quarkus un minikube, lai attēlotu dažādus modeļus.

Lietojumprogrammu darbplūsma

#kubernetes #slodzes līdzsvarošana #mikropakalpojumu paraugprakse #noklusējuma pielaide #sūtņa starpniekserveris #veselības pārbaude #traefik

tracking.feedpress.it

Pārskats par veselības pārbaudes modeļiem

Šajā rakstā es izskatīšu katra veida veselības pārbaudes un izpētīšu, kādas problēmas var atrisināt ar katru no tām. Daudziem izstrādātājiem ir ieviesti daži esošie veselības pārbaudes mehānismi, jo īpaši mūsdienās, aizmugures izstrādes “mikropakalpojumu laikmetā”. Es ļoti ceru, ka arī jūs to darāt