Sobes.tech
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)
    }
}