Todos los productos
Search
Centro de documentos

Alibaba Cloud Service Mesh:Limitación de tráfico

Última actualización: Sep 21, 2026

La limitación de tráfico permite un control preciso para manejar picos de tráfico, sobrecargas de servicio, agotamiento de recursos y ataques maliciosos. Esta función protege la estabilidad de los servicios de backend, reduce costos y mejora la experiencia del usuario.

Conceptos de la limitación de tráfico

La limitación de tráfico restringe la cantidad de solicitudes enviadas a un servicio durante un periodo determinado, por ejemplo, 300 solicitudes por minuto o 10 solicitudes por segundo. Esto evita que un servicio se sobrecargue debido a un exceso de solicitudes provenientes de una dirección IP de cliente específica o de clientes globales.

Por ejemplo, si limita a 300 el número de solicitudes enviadas a un servicio por minuto, la solicitud número 301 se rechaza. Al mismo tiempo, se devuelve el código de estado HTTP 429, que indica un exceso de solicitudes.

Modos de limitación de tráfico

Los proxy de Envoy admiten dos modos de limitación de tráfico: local y global. La limitación local restringe la tasa de solicitudes de cada instancia de servicio. La limitación global utiliza un servicio gRPC global para aplicar límites de tasa en toda la instancia de Service Mesh (ASM). Puede combinar ambos modos para aplicar distintos niveles de limitación.

Modo

Descripción

Referencias

Limitación local

  • La limitación local se configura por cada proceso de Envoy. Un proceso de Envoy es un pod en el que se inyecta un proxy de Envoy. Configurar este modo es más sencillo que configurar la limitación global, ya que no requiere componentes adicionales. Si configura ambos modos para una instancia de ASM, primero se aplica el límite de tasa local. Solo cuando no se alcanza dicho límite, se aplica el global. A continuación se muestran algunos ejemplos:

    • Suponga que la limitación local restringe a 50 por minuto las solicitudes de un cliente específico, mientras que el límite global es de 60 solicitudes por minuto. Cuando el cliente supera las 50 solicitudes, las excedentes se rechazan, aunque no se haya alcanzado el límite global.

    • Suponga que la limitación local restringe a 50 por minuto las solicitudes de un cliente específico y el límite global es de 40 solicitudes por minuto. Cuando el cliente supera las 40 solicitudes, las excedentes se rechazan debido a la limitación global, aunque no se haya alcanzado el límite local.

  • Si el pod donde se configuró el límite local tiene varias réplicas, cada una cuenta con su propio límite. Es decir, las solicitudes podrían restringirse en una réplica, pero no en otra.

Configure local throttling in Traffic Management Center

Limitación global o distribuida

  • La limitación global restringe la cantidad de solicitudes enviadas a varios servicios. En este modo, todos los servicios de un clúster comparten la configuración de limitación. Por lo general, requiere un componente externo, como una base de datos Redis.

  • Este modo se usa habitualmente cuando muchos clientes envían solicitudes a pocos servicios, lo cual podría interrumpirlos. La limitación global ayuda a prevenir fallas en cascada. Por ejemplo, puede configurarla en una puerta de enlace de entrada (ingress gateway) para limitar el total de solicitudes enviadas a una instancia de ASM. Después, configure la limitación local para restringir las solicitudes enviadas a servicios específicos dentro de dicha instancia.

Use ASMGlobalRateLimiter to configure global rate limiting for inbound traffic to application services

Funcionamiento de la limitación local

Un proxy de Envoy utiliza el algoritmo de bucket de tokens para implementar la limitación local. Los token se agregan a un bucket a una velocidad constante y cada solicitud entrante consume uno. Cuando el bucket se vacía, las solicitudes posteriores se rechazan. Por lo general, debe especificar los parámetros a continuación:

  • El intervalo con el que se llena el bucket

  • La cantidad de token que se agregan al bucket en cada intervalo

De forma predeterminada, un proxy de Envoy devuelve el código de estado HTTP 429 cuando se rechaza una solicitud y se establece el encabezado x-envoy-ratelimited. Puede personalizar el código de estado HTTP y el encabezado de respuesta.

Tenga en cuenta los conceptos a continuación cuando utilice la función de limitación de tráfico:

  • http_filter_enabled: indica el porcentaje de solicitudes para las cuales se comprueba el límite de tasa local, pero no se aplica.

  • http_filter_enforcing: indica el porcentaje de solicitudes sobre las cuales se aplica o se hace cumplir el límite de tasa local.

Establezca estos valores como porcentajes. Por ejemplo, puede establecer http_filter_enabled en el 10 % de las solicitudes y http_filter_enforcing en el 5 %. De esta manera, podrá probar el efecto de la limitación antes de aplicarla a todas las solicitudes.

Funcionamiento de la limitación global

La limitación global controla las tasas de solicitudes en toda una instancia de ASM mediante el servicio de límite de tasa de Envoy. Este servicio procesa el tráfico de forma centralizada y aplica los límites según reglas y cuotas predefinidas.

image

Configurar la limitación global implica dos partes: el filtro rate_limits de Envoy y la configuración del servicio de límite de tasa.

  • El filtro rate_limits contiene una lista de actions. Un proxy de Envoy intenta hacer coincidir cada solicitud con cada acción del filtro rate_limits y genera un descriptor por cada una. Un descriptor consta de un conjunto de entradas de descriptor que corresponden a una acción. Cada entrada de descriptor es un par clave-valor, como "descriptor-key-1": "descriptor-value-1" y "descriptor-key-2": "descriptor-value-2". Para obtener más información, consulte config-http-filters-rate-limit.

  • La configuración del servicio de límite de tasa se compara con la entrada de descriptor generada para cada solicitud. Dicha configuración especifica el límite de tasa para un conjunto particular de entradas de descriptor. El servicio interactúa con la caché de Redis para determinar si debe limitar las tasas de las solicitudes y envía la decisión de limitación al proxy de Envoy.

En conjunto, el filtro rate_limits y el servicio de límite de tasa implementan la limitación global. El filtro genera un descriptor basado en la acción configurada y lo envía al servicio de límite de tasa, el cual determina el límite aplicable y devuelve una respuesta de limitación. Este mecanismo le otorga control total sobre las tasas de solicitudes y protege los servicios de backend contra los picos de tráfico.