¿Que es Circuit Breaker? | Jose Luis Bugarin
|El interruptor automático (circuit breaker) es un interruptor de funcionamiento automático que se apaga solo cuando hay una sobrecarga o un cortocircuito (de esos de los sistemas eléctricos :p). Además del fusible eléctrico, el propósito del interruptor automático falla rápidamente y protege las instalaciones eléctricas.
En el caso de un microservicio/aplicación, protege la integridad general de la aplicación (todo esto viene de la electricidad).
Aquí una llave eléctrica para recordar 🙂
El circuit breaker para aplicaciones es muy simple, por que solo mantiene 2 estados:
- prendido (on): Libera llamadas a las dependencias
- apagado (off): Falla la llamada de inmediato y realizar una acción configurada previamente (el clásico mensaje lo sentimos)
En la práctica, en lugar de que los microservicios/aplicaciones accedan directamente a la dependencia externa, el componente (circuit breaker )se colocará en el medio de la llamada. En caso de cualquier falla de acuerdo con parámetros predeterminados (por ejm tiempos de respuesta, # de peticiones, etc), el componente interrumpe la comunicación con la dependencia que está fallando.
Existen algunos frameworks que pueden ayudarte a implementar/construir circuit breaker. El + usado, utilizado y creado por Netflix es Hystrix. Hystrix se desarrollo en java y hasta donde he revisado también soporta Go.