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:
- Cerrado (estado cerrado): Todas las solicitudes pasan como de costumbre.
- 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.
- 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.