Gå til innholdet

Circuit breaker

En circuit breaker stopper kall til en tjeneste med feil og tillater senere et begrenset antall prøvekall.

API-er og datakontrakter

En circuit breaker beskytter en applikasjon mot stadig å kalle en tjeneste med feil som den er avhengig av. Den vurderer utvalgte feil og avgjør om nye kall får passere. Etter en fastsatt ventetid kan et begrenset antall prøvekall kontrollere om tjenesten er gjenopprettet.

Tre tilstander med ulike tillatelser

I closed passerer kall normalt. I open avvises de uten å sendes videre til den berørte tjenesten. half-open tillater bare et begrenset antall prøvekall; resultatene avgjør om kall blokkeres igjen eller normal drift gjenopptas.

I en fiktiv kundeportal svikter tjenesten for PDF-rapporter. Den åpne circuit breakeren hindrer nye kall til tjenesten, og portalen viser at den er midlertidig utilgjengelig. Mekanismen lagrer ikke dermed en rapportjobb i en kø og reparerer ikke tjenesten.

Teamet fastsetter feiltyper, vurderingsvindu, terskel, ventetid og alternativ oppførsel. En timeout begrenser varigheten til ett kall; et nytt forsøk starter enda et. Circuit breakeren avgjør om det sendes videre. Mekanismene kan samarbeide, men trenger samordnede regler.

Kilder