Sobes.tech
Middle — Middle+

Può spiegare il principio di funzionamento del Circuit Breaker e perché è necessario in sistemi ad alta richiesta?

sobes.tech AI

Risposta dell'AI

Circuit Breaker — è un pattern che aiuta a proteggere il sistema da fallimenti a cascata durante l'interazione con servizi o componenti esterni.

Principio di funzionamento:

  • In stato normale, il Circuit Breaker permette le richieste al servizio esterno.
  • Se il numero di errori supera una soglia impostata, il Circuit Breaker si «apre» e blocca le richieste future per un certo periodo.
  • Dopo una pausa, tenta di ristabilire la connessione (stato semiaperto).
  • Se le richieste hanno successo, il Circuit Breaker torna allo stato normale.

A cosa serve:

  • Previene il sovraccarico del servizio in panne.
  • Riduce i tempi di attesa della risposta, restituendo rapidamente un errore.
  • Migliora la stabilità e la resilienza del sistema.

Esempio in Go usando la libreria github.com/sony/gobreaker:

import (
    "fmt"
    "github.com/sony/gobreaker"
)

func main() {
    cb := gobreaker.NewCircuitBreaker(gobreaker.Settings{})

    result, err := cb.Execute(func() (interface{}, error) {
        // chiamata al servizio esterno
        return "risposta", nil
    })

    if err != nil {
        fmt.Println("Errore o Circuit Breaker aperto:", err)
    } else {
        fmt.Println("Risposta riuscita:", result)
    }
}