Circuit Breaker
Introducción
Cuando trabajamos con microservicios para la construcción de nuestras aplicaciones es común tener un arbol de dependencias complejo. Es por ello que en el caso en el que el servicio, a lo largo de dicho árbol encuentre un error que responda lento, esto genere otros fallos dentro del microservicio generados a partir de este primero.
Para evitar estas complicaciones y ayudar a aligerar estos problemas existen los circuit breakers.
Sentinel
Sentinel es una solución dentro de las diferentes que existen para implementar los circuit breakers.
La forma de trabajar de Sentinel está basada en nodos. El usuario define los nodos que vea necesarios y estos le ofrecen diferentes estadísticas.
Conceptos clave de Sentinel:
Recurso: puede ser cualquier cosa: un servicio, un método o incluso un fragmento de código.
Regla: es la forma en la que Sentinel puede proteger los recursos (control de flujo, concurrencia y reglas de circuit breaking).
Circuit breaking
Sentinel utiliza los siguientes principios para definir si un recurso está inestable y aplicar el circuit breaking:
Tiempo de respuesta medio: Cuando el tiempo de respuesta sobrepasa el límite establecido, el recurso entra en un estado "casi-degradado". Si el tiempo de respuesta de las siguientes 5 peticiones sigue superando ese límite, el recurso pasará a estado degradado. Esto hará que todas las peticiones que lleguen serán bloqueadas.
Ratio de excepciones: cuando el ratio es superior al limite establecido, el acceso al recurso estará bloqueado.
Número de excepciones: interrupción del servicio por el numero de excepciones por minuto.
Para más información sobre el funcionamiento de Sentinel puede consultar la documentación oficial
Guía de uso Onesait
Puedes encontrar nuestra receta Onesait de como utilizarlo en Guía de uso de Sentinel.