Gå til indholdet

Circuit breaker

En circuit breaker stopper kald til en fejlramt tjeneste og tillader senere et begrænset antal prøvekald.

API'er og datakontrakter

En circuit breaker beskytter en applikation mod fortsat at kalde en fejlramt tjeneste, som den afhænger af. Den vurderer udvalgte fejl og afgør, om nye kald må passere. Efter en fastlagt ventetid kan et begrænset antal prøvekald kontrollere, om tjenesten er kommet sig.

Tre tilstande med forskellige tilladelser

I closed passerer kald normalt. I open afvises de uden at blive sendt videre til den berørte tjeneste. half-open tillader kun et begrænset antal prøvekald; deres resultater afgør, om kald igen blokeres, eller normal drift genoptages.

I en fiktiv kundeportal går tjenesten til PDF-rapporter ned. Den åbne circuit breaker forhindrer nye kald til tjenesten, og portalen viser, at den midlertidigt er utilgængelig. Mekanismen gemmer ikke dermed en rapportopgave i en kø og reparerer ikke tjenesten.

Teamet fastlægger fejltyper, vurderingsvindue, tærskel, ventetid og alternativ adfærd. En timeout begrænser varigheden af ét kald; et nyt forsøg starter endnu et kald. Circuit breakeren afgør, om det sendes videre. Mekanismerne kan samarbejde, men kræver afstemte regler.

Kilder