Middle — Middle+
Môžete vysvetliť princíp fungovania Circuit Breaker a prečo je potrebný v systémoch s vysokou záťažou?
sobes.tech AI
Odpoveď od AI
Circuit Breaker — je vzor, ktorý pomáha chrániť systém pred kaskádovými zlyhaniami pri práci s externými službami alebo komponentmi.
Princíp fungovania:
- V normálnom stave Circuit Breaker umožňuje požiadavky na externú službu.
- Ak počet chýb prekročí stanovený prah, Circuit Breaker sa «otvorí» a dočasne blokuje ďalšie požiadavky.
- Po prestávke sa pokúsi obnoviť spojenie (polootvorený stav).
- Ak sú požiadavky úspešné, Circuit Breaker sa vráti do normálneho stavu.
Prečo je to potrebné:
- Zabráni nadmernému zaťaženiu zlyhajúcej služby.
- Skracuje čas čakania na odpoveď, rýchlo vracia chybu.
- Zvyšuje stabilitu a odolnosť systému.
Príklad v Go s knižnicou github.com/sony/gobreaker:
import (
"fmt"
"github.com/sony/gobreaker"
)
func main() {
cb := gobreaker.NewCircuitBreaker(gobreaker.Settings{})
result, err := cb.Execute(func() (interface{}, error) {
// volanie na externú službu
return "odpoveď", nil
})
if err != nil {
fmt.Println("Chyba alebo otvorený Circuit Breaker:", err)
} else {
fmt.Println("Úspešná odpoveď:", result)
}
}