Sobes.tech
Middle — Middle+

Vysvětlete princip fungování a účel komponenty Circuit Breaker v systémech spolehlivosti.

sobes.tech AI

Odpověď od AI

Komponent Circuit Breaker se používá ke zvýšení spolehlivosti distribuovaných systémů tím, že zabraňuje opakovaným pokusům o volání nefunkční služby a snižuje zátěž systému.

Princip fungování:

  1. Zavřený stav: Všechny požadavky procházejí normálně.
  2. Otevřený stav: Pokud počet chyb překročí práh, Circuit Breaker se «otevře» a blokuje další požadavky, okamžitě vrací chybu nebo alternativní odpověď.
  3. Poloviční otevřený stav: Po určité době od otevření umožní omezený počet požadavků, aby zkontroloval, zda se služba zotavila.

Pokud jsou požadavky úspěšné, vrátí se zpět do zavřeného stavu, jinak se znovu otevře.

Toto zabrání nadměrnému zatížení selhávající služby a poskytne čas na její obnovení, čímž se zlepší celková stabilita systému.

Příklad v Go (zjednodušený):

// Pseudokód
cb := NewCircuitBreaker(3, time.Minute) // 3 chyby - otevře na 1 minutu

if cb.AllowRequest() {
    err := callRemoteService()
    if err != nil {
        cb.RecordFailure()
    } else {
        cb.RecordSuccess()
    }
} else {
    // Ihned vrátit chybu, služba není dostupná
}