Sobes.tech
Junior — Middle

¿Puede explicar el mecanismo de funcionamiento del patrón Circuit Breaker y su papel en garantizar la fiabilidad del sistema?

sobes.tech AI

Respuesta de la IA

El patrón Circuit Breaker se utiliza para aumentar la fiabilidad de los sistemas distribuidos, evitando llamadas repetidas a un servicio que no funciona o responde lentamente.

Cómo funciona:

  1. Cerrado (estado cerrado): Todas las solicitudes pasan como de costumbre.
  2. Abierto (estado abierto): Si el número de errores supera un umbral, el Circuit Breaker se «abre» — las nuevas solicitudes reciben inmediatamente un error sin intentar llamar al servicio.
  3. Medio abierto (estado semiabierto): Después de un tiempo, el Circuit Breaker permite un número limitado de solicitudes para verificar si el servicio se ha recuperado.

Si las solicitudes son exitosas, el estado vuelve a Cerrado, de lo contrario, vuelve a Abierto.

Esto previene la sobrecarga en un servicio que no funciona y permite que el sistema se recupere más rápidamente.

Ejemplo de uso en Go (de manera simplificada):

// Pseudocódigo
cb := NewCircuitBreaker()

if cb.AllowRequest() {
    err := callRemoteService()
    if err != nil {
        cb.RecordFailure()
    } else {
        cb.RecordSuccess()
    }
} else {
    // Devolver error inmediatamente, sin llamar al servicio
}

De esta manera, el Circuit Breaker ayuda a hacer que el sistema sea más resistente a fallos.