Sobes.tech
Junior — Middle

Můžete vysvětlit mechanismus fungování vzoru Circuit Breaker a jeho roli při zajištění spolehlivosti systému?

sobes.tech AI

Odpověď od AI

Vzorek Circuit Breaker se používá ke zvýšení spolehlivosti distribuovaných systémů tím, že zabraňuje opakovaným voláním nefunkční nebo pomalu odpovídající služby.

Jak funguje:

  1. Zavřený (uzavřený stav): Všechny požadavky procházejí jako obvykle.
  2. Otevřený (otevřený stav): Pokud počet chyb překročí práh, Circuit Breaker se «otevře» — nové požadavky okamžitě dostanou chybu bez pokusu o volání služby.
  3. Poloviční otevřený (poloviční otevřený stav): Po určité době Circuit Breaker umožní omezený počet požadavků, aby zkontroloval, zda se služba zotavila.

Pokud jsou požadavky úspěšné, stav se vrátí do Zavřeného, jinak zpět do Otevřeného.

Toto zabraňuje nadměrnému zatížení nefunkční služby a umožňuje systému se rychleji zotavit.

Příklad použití v Go (zjednodušené):

// Pseudo-kód
cb := NewCircuitBreaker()

if cb.AllowRequest() {
    err := callRemoteService()
    if err != nil {
        cb.RecordFailure()
    } else {
        cb.RecordSuccess()
    }
} else {
    // Ihned vrací chybu, aniž by volal službu
}

Tímto způsobem pomáhá Circuit Breaker učinit systém odolnější vůči selháním.