Middle — Middle+
Kunt u het werkingsprincipe van de Circuit Breaker uitleggen en waarom het nodig is in systemen met hoge belasting?
sobes.tech AI
Antwoord van AI
Circuit Breaker — is een patroon dat helpt om het systeem te beschermen tegen cascade-fouten bij het werken met externe services of componenten.
Werking:
- In de normale toestand laat de Circuit Breaker verzoeken door naar de externe service.
- Als het aantal fouten een ingestelde drempel overschrijdt, «gaat» de Circuit Breaker open en blokkeert verdere verzoeken voor een bepaalde tijd.
- Na een pauze probeert hij de verbinding te herstellen (halfopen toestand).
- Als de verzoeken succesvol zijn, keert de Circuit Breaker terug naar de normale toestand.
Waarom het nodig is:
- Voorkomt overbelasting van de uitgevallen service.
- Vermindert de wachttijd voor antwoorden, door snel een fout terug te geven.
- Verhoogt de stabiliteit en fouttolerantie van het systeem.
Voorbeeld in Go met de bibliotheek github.com/sony/gobreaker:
import (
"fmt"
"github.com/sony/gobreaker"
)
func main() {
cb := gobreaker.NewCircuitBreaker(gobreaker.Settings{})
result, err := cb.Execute(func() (interface{}, error) {
// externe service aanroepen
return "antwoord", nil
})
if err != nil {
fmt.Println("Fout of Circuit Breaker open:", err)
} else {
fmt.Println("Succesvol antwoord:", result)
}
}