Las reglas de aislamiento controlan el número de hilos concurrentes para interfaces y dependencias con el fin de garantizar la estabilidad del sistema. Se utilizan habitualmente en escenarios donde los procesos internos de una aplicación o sus dependencias posteriores se vuelven inestables, como en casos de sentencias SQL lentas o tiempos de respuesta elevados en aplicaciones posteriores. Este tema describe cómo configurar y gestionar reglas de aislamiento.
Requisitos previos
Antes de empezar, asegúrese de contar con lo siguiente:
MSE Enterprise Edition activado
-
Microservices Governance habilitado para sus aplicaciones. Para obtener instrucciones de configuración, consulte:
Contexto
Si un método o interfaz de una dependencia crítica se vuelve inestable, puede limitar sus hilos concurrentes para aislar el problema. Cuando aumenta el tiempo de respuesta de una solicitud, también se incrementa el número de hilos concurrentes. Si este número supera el umbral, MSE rechaza las solicitudes excedentes hasta que se completan las tareas acumuladas y disminuye el conteo de hilos. Este método aísla las excepciones y mejora la estabilidad.
Utilice la siguiente información para establecer el umbral de concurrencia:
Concurrencia = Consultas por segundo (QPS) esperadas × Tiempo de respuesta + Redundancia.
Por ejemplo, suponga que el tiempo de ejecución esperado de SQL es de 20 ms, el QPS esperado es 20 y la concurrencia máxima es 6. Establezca el umbral de concurrencia según la siguiente lógica: Max(20/1000 × 20, 6) = 6. Agregue una redundancia de 2. El umbral de concurrencia recomendado es 8.
Después de configurar el umbral, si un bloqueo mutuo o un problema de rendimiento provoca que la sentencia SQL se ejecute lentamente, esta ocupará solo 8 hilos. Esto evita que las solicitudes entrantes que no pueden finalizar rápidamente agoten los hilos activos del proceso.
Cuando la sentencia SQL vuelve a la normalidad, el número de hilos concurrentes disminuye rápidamente. Una vez que el conteo cae por debajo del umbral, el sistema deja de rechazar solicitudes y la capacidad de procesamiento de la aplicación se recupera con rapidez. Este método se ajusta automáticamente según el tiempo de respuesta y aísla las aplicaciones inestables.
Las reglas de aislamiento se usan normalmente en escenarios de aislamiento de dependencias críticas.
Procedimiento
Inicie sesión en la consola de MSE y seleccione una región en la barra de navegación superior.
En el panel de navegación izquierdo, elija Microservices Governance > Application Governance.
En la página Application list, haga clic en la tarjeta de recursos de la aplicación deseada.
-
En la página de detalles de la aplicación, cree una regla de aislamiento mediante uno de los siguientes métodos:
En el panel de navegación izquierdo, haga clic en Application Overview. En la página que aparece, haga clic en la pestaña Through QPS TOP. Localice la interfaz objetivo y haga clic en Isolation en la columna Actions.
En el panel de navegación izquierdo, haga clic en API Details. En la pestaña Concurrency Isolation, haga clic en Add isolation rule.
En el panel de navegación izquierdo, haga clic en Traffic management. En la pestaña Flow protection, haga clic en la pestaña Concurrency Isolation y luego haga clic en Add isolation rule.
-
En el cuadro de diálogo Add Isolation Protection Rule o Add Rule, configure los parámetros y haga clic en Add.
NotaPara obtener más información sobre los parámetros, consulte More information.
Ejemplo: Garantizar recursos suficientes
Cuando aumenta el tiempo de respuesta de una solicitud, también se incrementa el número de hilos concurrentes. Si este número supera el umbral, MSE rechaza las solicitudes excedentes hasta que se completan las tareas acumuladas y disminuye el conteo de hilos. Este método aísla las excepciones y mejora la estabilidad. Por ejemplo, el tiempo de ejecución de una sentencia SQL es de 20 ms y el QPS esperado es 20.
En el cuadro de diálogo Add Isolation Protection Rule o Add Rule, establezca los siguientes parámetros:
Establezca el parámetro Interface Name.
Establezca Concurrency threshold en 10.
Una vez completada la configuración, si un bloqueo mutuo o un problema de rendimiento provoca que la sentencia SQL se ejecute lentamente, esta ocupará solo 10 hilos. Esto evita que las solicitudes entrantes que no pueden finalizar rápidamente agoten los hilos activos del proceso. Cuando la sentencia SQL vuelve a la normalidad, el número de hilos concurrentes disminuye rápidamente. Una vez que el conteo cae por debajo del umbral, el sistema deja de rechazar solicitudes y la capacidad de procesamiento de la aplicación se recupera con rapidez. Este método se ajusta automáticamente según el tiempo de respuesta y aísla las aplicaciones inestables.
Más información
La siguiente tabla describe los parámetros que se deben configurar en el cuadro de diálogo Add Isolation Protection Rule o Add Rule.
|
Elemento de configuración |
Descripción |
|
Interface Name |
El nombre del recurso que se va a aislar. |
|
Concurrency threshold |
El umbral para el número de hilos concurrentes del recurso. Corresponde al número de hilos en ejecución para dicho recurso. |