Sobes.tech
Middle — Middle+

Můžete vysvětlit princip fungování Circuit Breaker a proč je potřeba ve systémech s vysokou zátěží?

sobes.tech AI

Odpověď od AI

Circuit Breaker — je vzor, který pomáhá chránit systém před kaskádovými selháními při práci s externími službami nebo komponentami.

Princip fungování:

  • V normálním stavu Circuit Breaker umožňuje požadavky na externí službu.
  • Pokud počet chyb překročí stanovený práh, Circuit Breaker se «otevře» a dočasně blokuje další požadavky.
  • Po pauze se pokusí obnovit spojení (polootevřený stav).
  • Pokud jsou požadavky úspěšné, Circuit Breaker se vrátí do normálního stavu.

Proč je to potřeba:

  • Předchází nadměrnému zatížení selhávající služby.
  • Zkracuje dobu čekání na odpověď, rychle vrací chybu.
  • Zvyšuje stabilitu a odolnost systému.

Příklad v Go s knihovnou github.com/sony/gobreaker:

import (
    "fmt"
    "github.com/sony/gobreaker"
)

func main() {
    cb := gobreaker.NewCircuitBreaker(gobreaker.Settings{})

    result, err := cb.Execute(func() (interface{}, error) {
        // volání externí služby
        return "odpověď", nil
    })

    if err != nil {
        fmt.Println("Chyba nebo Circuit Breaker otevřen:", err)
    } else {
        fmt.Println("Úspěšná odpověď:", result)
    }
}