Hoppa till innehållet

Circuit breaker

En circuit breaker stoppar anrop till en felande tjänst och tillåter senare ett begränsat antal provanrop.

API:er och datakontrakt

En circuit breaker skyddar en applikation mot att fortsätta anropa en felande tjänst som den är beroende av. Den bedömer utvalda fel och avgör om nya anrop får passera. Efter en bestämd väntetid kan ett begränsat antal provanrop kontrollera om tjänsten har återhämtat sig.

Tre tillstånd som styr vilka anrop som släpps fram

I closed passerar anrop normalt. I open avvisas de utan att skickas vidare till den berörda tjänsten. half-open tillåter endast ett begränsat antal provanrop; resultaten avgör om anrop åter blockeras eller normal drift återupptas.

I en fiktiv kundportal slutar tjänsten för PDF-rapporter att fungera. Den öppna circuit breakern hindrar nya anrop till tjänsten, och portalen visar att den tillfälligt är otillgänglig. Mekanismen sparar därmed inte en rapportbeställning i en kö och reparerar inte tjänsten.

Teamet bestämmer feltyper, bedömningsfönster, tröskel, väntetid och alternativt beteende. En timeout begränsar tiden för ett anrop; ett återförsök startar ett nytt. Circuit breakern avgör om det skickas vidare. Mekanismerna kan samverka men behöver samordnade regler.

Källor