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)
}
}