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