Middle — Middle+
Kas saaksite selgitada Circuit Breaker tööpõhimõtet ja miks see on vajalik kõrge koormusega süsteemides?
sobes.tech AI
Vastus AI-lt
Circuit Breaker — on muster, mis aitab kaitsta süsteemi kaskaadsete rikete eest, töötades väliste teenuste või komponentidega.
Tööpõhimõte:
- Normaalsetes tingimustes laseb Circuit Breaker läbi päringud välisteenusele.
- Kui vigade arv ületab määratud künnise, avatakse Circuit Breaker ja blokeerib edasised päringud teatud ajaks.
- Pärast pausi püüab ta ühendust taastada (poolavatud olek).
- Kui päringud on edukad, naaseb Circuit Breaker normaalsesse olekusse.
Miks see on vajalik:
- Ennetab ülekoormust langenud teenusel.
- Lühendab vastamise aega, kiiresti vea tagasi andes.
- Parendab süsteemi stabiilsust ja vastupidavust.
Näide Go keeles kasutades raamatukogu github.com/sony/gobreaker:
import (
"fmt"
"github.com/sony/gobreaker"
)
func main() {
cb := gobreaker.NewCircuitBreaker(gobreaker.Settings{})
result, err := cb.Execute(func() (interface{}, error) {
// välise teenuse kutsumine
return "vastus", nil
})
if err != nil {
fmt.Println("Viga või avatud Circuit Breaker:", err)
} else {
fmt.Println("Edukas vastus:", result)
}
}