Sobes.tech
Junior — Middle

Môžete vysvetliť mechanizmus fungovania vzoru Circuit Breaker a jeho úlohu pri zabezpečení spoľahlivosti systému?

sobes.tech AI

Odpoveď od AI

Vzorec Circuit Breaker sa používa na zvýšenie spoľahlivosti distribuovaných systémov tým, že zabraňuje opakovaným volaniam nefunkčnej alebo pomaly odpovedajúcej služby.

Ako funguje:

  1. Zatvorený (zatvorený stav): Všetky požiadavky prechádzajú ako zvyčajne.
  2. Otvoriť (otvorený stav): Ak počet chýb prekročí prah, Circuit Breaker sa «otvorí» — nové požiadavky dostanú okamžite chybu bez pokusu o volanie služby.
  3. Polovične otvorený (polovične otvorený stav): Po určitom čase Circuit Breaker umožní obmedzený počet požiadaviek, aby skontroloval, či sa služba zotavila.

Ak sú požiadavky úspešné, stav sa vráti do Zatvoreného, inak späť do Otvoreného.

Toto zabraňuje nadmernému zaťaženiu nefunkčnej služby a umožňuje systému sa rýchlejšie zotaviť.

Príklad použitia v Go (zjednodušené):

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

if cb.AllowRequest() {
    err := callRemoteService()
    if err != nil {
        cb.RecordFailure()
    } else {
        cb.RecordSuccess()
    }
} else {
    // Ihneď vracia chybu, bez volania služby
}

Týmto spôsobom pomáha Circuit Breaker urobiť systém odolnejší voči zlyhaniam.