Middle — Middle+
Puteți explica principiul de funcționare al Circuit Breaker și de ce este necesar în sistemele cu încărcare mare?
sobes.tech AI
Răspuns de la AI
Circuit Breaker — este un pattern care ajută la protejarea sistemului împotriva eșecurilor în cascadă atunci când se lucrează cu servicii sau componente externe.
Principiul de funcționare:
- În stare normală, Circuit Breaker permite solicitările către serviciul extern.
- Dacă numărul de erori depășește un prag stabilit, Circuit Breaker se «deschide» și blochează solicitările ulterioare pentru o anumită perioadă.
- După o pauză, încearcă să restabilească conexiunea (stare semi-deschisă).
- Dacă solicitările sunt reușite, Circuit Breaker revine la starea normală.
De ce este nevoie:
- Previne suprasarcina serviciului căzut.
- Reduce timpul de așteptare pentru răspuns, returnând rapid o eroare.
- Crește stabilitatea și rezistența sistemului.
Exemplu în Go folosind biblioteca github.com/sony/gobreaker:
import (
"fmt"
"github.com/sony/gobreaker"
)
func main() {
cb := gobreaker.NewCircuitBreaker(gobreaker.Settings{})
result, err := cb.Execute(func() (interface{}, error) {
// apel către serviciul extern
return "răspuns", nil
})
if err != nil {
fmt.Println("Eroare sau Circuit Breaker deschis:", err)
} else {
fmt.Println("Răspuns de succes:", result)
}
}