Las reglas de limitación de parámetros hotspot para solicitudes HTTP aplican una limitación detallada a parámetros individuales en las solicitudes entrantes de aplicaciones que ofrecen servicios web. Para aplicaciones que utilizan frameworks web comunes como contenedores Servlet, Spring Web y Spring Boot, Microservices Engine (MSE) analiza los parámetros de solicitud a nivel de API, lo que permite limitar las llamadas a recursos por dimensión de solicitud para proteger sus servicios y la estabilidad del sistema. Este tema describe cómo configurar una regla de limitación de parámetros hotspot para solicitudes HTTP en una aplicación.
Las reglas de limitación de parámetros hotspot para solicitudes HTTP anteriormente se conocían como reglas de protección de aplicaciones web.
Contexto
En escenarios de servicios web, la protección mediante limitación de llamadas a recursos por dimensiones como la dirección IP de origen de una solicitud o un parámetro de solicitud complementa la limitación y degradación a nivel de API, y ayuda a mantener el funcionamiento esperado de sus aplicaciones. Por ejemplo, en escenarios web con alto tráfico, es posible que necesite limitar no solo la API actual, sino también la dirección IP de origen con mayor frecuencia de acceso o el ID de producto con mayor frecuencia de acceso. A continuación se muestran ejemplos de estos casos:
Limite el ID de producto que se compra con mayor frecuencia durante un periodo de tiempo para evitar la penetración de caché, la cual envía una gran cantidad de solicitudes a la base de datos.
Limite la dirección IP de origen que envía un alto volumen de solicitudes durante un periodo de tiempo para evitar solicitudes masivas fraudulentas que envíen información falsa.
Notas de uso
Antes de configurar una regla de limitación de parámetros hotspot para solicitudes HTTP, revise los siguientes comportamientos y límites:
Resolución de IP del cliente — Si establece Parameter Properties en Client IP y la solicitud pasa por un proxy, MSE primero intenta obtener la dirección IP del encabezado de solicitud
X-Forwarded-For. Si dicho encabezado contiene una dirección IP, MSE la utiliza como la dirección IP real del cliente.Respuesta a una solicitud limitada — Una solicitud rechazada devuelve el mensaje personalizado configurado en la gestión de comportamiento. Si no hay ningún mensaje personalizado configurado, se aplica el comportamiento predeterminado: un código de error HTTP 429 y el mensaje de texto predeterminado.
Límite máximo de umbral para cola — Cuando utilice Waiting in line, no establezca el QPS en un valor superior a 1,000 (un intervalo de solicitud de 1 ms).
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 recurso de la aplicación deseada.
Una vez dentro de la aplicación, elija API Details en el panel de navegación izquierdo, haga clic en la pestaña Hotspot Parameter Protection (HTTP Requests) y luego haga clic en New.
-
En el cuadro de diálogo Hotspot Parameter Protection (HTTP Requests), configure la información de la regla y luego haga clic en New.
Configure la información de la regla según las descripciones en Parameters.
En la lista de reglas, seleccione la regla que creó y luego haga clic en Open en la columna Status.
En el cuadro de diálogo Tips, haga clic en OK para habilitar la regla de protección que configuró.
Parámetros
La siguiente tabla describe los parámetros del cuadro de diálogo Hotspot Parameter Protection (HTTP Requests). Una fila sin descripción indica el paso de configuración o la sección del cuadro de diálogo que contiene los parámetros listados después de ella. Para la regla de resolución de IP del cliente, la respuesta devuelta a una solicitud limitada y el límite máximo de umbral para cola, consulte Usage notes. Para ver ejemplos que relacionan un escenario con un conjunto de valores, consulte Use cases.
|
Parámetro |
Descripción |
|
Configure Protection Rule |
|
|
Parameter Properties |
Aplica limitación basada en una propiedad de parámetro de la API seleccionada. Para consultar las propiedades compatibles, vea Parameter property values. |
|
(Opcional) Match Pattern y Match String |
Disponible cuando establece Parameter Properties en Header o URL Parameters. Active el interruptor Property Value Match y luego especifique Match Pattern y Match String. Para consultar los patrones compatibles, vea Match patterns. |
|
Threshold Type |
El valor predeterminado es Number of requests. |
|
Threshold |
El umbral de QPS del objeto estadístico que activa la limitación para la API. Al establecer el umbral, seleccione un intervalo estadístico. Se admiten segundo, minuto, hora y día. Por ejemplo, si establece el umbral en 10 y selecciona Points como intervalo, no se permitirán más de 10 solicitudes por minuto. |
|
Advanced Options |
|
|
Flow Control Method |
Especifica cómo se maneja el tráfico limitado. Para consultar los métodos compatibles, vea Flow control methods. |
|
Burst size |
Si establece Flow Control Method en Fast failure, puede especificar un tamaño de ráfaga adicional, que corresponde al número de solicitudes extra permitidas para picos de tráfico. |
|
Timeout time |
Si establece Flow Control Method en Waiting in line, debe especificar un tiempo de espera en milisegundos (ms). Por ejemplo, si el QPS es 5, solo pasa una solicitud cada 200 ms y las solicitudes excedentes se ponen en cola. El tiempo de espera es el tiempo máximo en cola. Una solicitud que supere este tiempo máximo se rechaza. |
|
Whether to open |
Enabled: La regla de limitación de parámetros hotspot para solicitudes HTTP entra en vigor tan pronto como se crea. Disabled: La regla no entra en vigor después de su creación. |
|
Configure Protection Behavior |
|
|
Association Behavior |
Especifica el comportamiento posterior a la limitación de la regla. Para consultar las opciones disponibles, vea Association behavior options. |
Valores de propiedad de parámetro
Se admiten los siguientes valores para Parameter Properties:
Client IP: La dirección IP del cliente que envía la solicitud.
Remote Host: El encabezado Host del cliente que envía la solicitud.
Header: La limitación se basa en el encabezado HTTP especificado. Si introduce una clave de encabezado específica, la regla limita los valores hotspot bajo esa clave de encabezado por separado. Después de seleccionar Header, puede configurar una política de coincidencia para el valor del atributo de solicitud. Solo se cuentan y limitan los valores de atributo que coinciden con el patrón.
URL Parameters: La limitación se basa en el parámetro de solicitud HTTP especificado. Debe introducir el nombre del parámetro correspondiente. Después de seleccionar URL Parameters, puede configurar una política de coincidencia para el valor del atributo de solicitud. Solo se cuentan y limitan los valores de atributo que coinciden con el patrón.
Patrones de coincidencia
Valores válidos de Match Pattern:
accurate: Coincide estrictamente con los valores respecto a la cadena de coincidencia especificada.
Substring: Coincide si el valor del atributo de solicitud contiene la subcadena. Por ejemplo, si la subcadena es
ab, tantoabacomocabccoinciden, perocbano.Regular: Coincide con los valores según la expresión regular especificada.
Métodos de control de flujo
Se admiten los siguientes valores para Flow Control Method:
Fast failure: Si el tipo de umbral es QPS, el tráfico limitado falla rápidamente. Es decir, las solicitudes se rechazan inmediatamente al alcanzar el umbral.
Waiting in line: Si el tipo de umbral es QPS, las solicitudes limitadas pasan a una tasa constante y pueden ponerse en cola. Debe especificar un tiempo de espera. Una solicitud que previsiblemente alcance el tiempo de espera falla inmediatamente en lugar de entrar en la cola. Por ejemplo, si el QPS es 10, solo pasa una solicitud cada 100 ms y las solicitudes excedentes se ponen en cola. El tiempo de espera es el tiempo máximo en cola. Una solicitud que supere este tiempo máximo se rechaza.
Opciones de comportamiento asociado
Se admiten los siguientes valores para Association Behavior:
Default Behavior: La opción predeterminada. Utilice el comportamiento predeterminado si no necesita personalizar el comportamiento posterior a la limitación.
-
New behavior: Agrega un comportamiento personalizado posterior a la limitación. Después de crear el comportamiento, puede seleccionarlo en la lista desplegable Association Behavior.
Casos de uso
Cada uno de los siguientes ejemplos relaciona un escenario con los valores de parámetro requeridos en el cuadro de diálogo Hotspot Parameter Protection (HTTP Requests). Configure los parámetros que no aparecen en un ejemplo, como Whether to open, tal como se describe en Parameters.
Venta flash de un producto popular
En escenarios como ventas flash, el alto tráfico puede ralentizar la respuesta de su sistema o incluso provocarle fallos. Para mantener la estabilidad del sistema, configure una regla de limitación de parámetros hotspot para solicitudes HTTP. Cuando se supera el umbral especificado, el sistema rechaza el exceso de tráfico para el producto popular.
Por ejemplo, para permitir un máximo de 100 solicitudes de pedido por segundo para cada ID de producto popular individual y rechazar todas las solicitudes de pedido excedentes para ese producto, configure los siguientes parámetros:
Establezca Parameter Properties en URL Parameters.
Para URL Parameter Name, introduzca
stockId.Establezca Threshold en 100 solicitudes por Second.
Establezca Flow Control Method en Fast failure.
Para Parameter Properties, seleccione el campo de parámetro que contiene el ID del producto popular actual. En este ejemplo, los parámetros URL contienen un campo stockId que lleva el ID del producto solicitado.
Solicitudes masivas fraudulentas durante una promoción
Durante las promociones, una gran cantidad de solicitudes masivas fraudulentas puede consumir inventario de productos o recursos del servidor. En este caso, aplique Waiting in line a las direcciones IP de origen de las solicitudes para que estas pasen a una tasa constante y las solicitudes excesivas no afecten la estabilidad del servicio.
Por ejemplo, configure los siguientes parámetros. Las solicitudes que cada dirección IP de origen diferente envía a esta API pasarán a una tasa constante de una solicitud cada 10 ms (1 s/100 = 10 ms), y las solicitudes excedentes se pondrán en cola. Una solicitud en cola que espere más de 30 ms fallará inmediatamente.
Establezca Parameter Properties en Client IP.
Mantenga el valor predeterminado Number of requests para Threshold Type.
Establezca Threshold en 100 solicitudes por Second.
Establezca Flow Control Method en Waiting in line.
Para Timeout time, introduzca 30.
Establezca Whether to open en Enabled.