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.