Limitación de tasa
La limitación de tasa es la práctica de establecer un límite en la cantidad de solicitudes que un cliente (a menudo una aplicación en una computadora o dispositivo móvil) puede realizar a un servicio dentro de un período de tiempo determinado. Cuando un cliente excede el límite, el servicio rechaza o retrasa las solicitudes adicionales (por lo general devolviendo una respuesta HTTP 429 Too Many Requests) hasta que se reinicia la ventana. La limitación de tasa protege a un servicio de la sobrecarga, garantiza el acceso equitativo entre los usuarios y aplica los niveles de uso que venden muchas API.
En resumen: la limitación de tasa establece un límite en la cantidad de solicitudes que puedes realizar en una ventana de tiempo determinada, de modo que ningún cliente por sí solo pueda saturar un servicio o exceder el plan que está pagando.
Cómo funciona la limitación de tasa
Un servicio realiza un seguimiento del uso de cada cliente en relación con una asignación definida:
- Definir un límite: El servicio establece una cuota, como solicitudes por segundo, por minuto o por mes, a menudo vinculada a una clave de API o a una dirección IP.
- Contar solicitudes: Cada solicitud entrante se cuenta en relación con la cuota mediante un algoritmo, como una ventana fija (que se reinicia a intervalos establecidos), una ventana deslizante (recuento móvil durante los últimos N segundos) o un token bucket (una asignación en curso que se recarga a un ritmo constante).
- Permitir o rechazar: Si el cliente está por debajo del límite, la solicitud continúa; si el cliente supera su límite, el servicio devuelve una respuesta 429 en lugar de procesarla.
- Señalar al cliente: Los encabezados de respuesta del servicio comunicarán este estado. Por ejemplo, un encabezado de respuesta como “RateLimit-Remaining” puede mostrar cuánta cuota queda, mientras que “Retry-After” le indica al cliente cuánto tiempo debe esperar antes de volver a intentarlo.
- Reiniciar: Cuando transcurre la ventana de tiempo, la cuota se recarga y las solicitudes se aceptan una vez más.
La idea definitoria es que la limitación de tasa es un contrato, no una falla: un 429 es el servicio pidiéndole a un cliente que reduzca la velocidad, no una señal de que algo está roto.
Limitación de tasa frente a throttling y cuotas
- La limitación de tasa y el throttling suelen usarse de manera intercambiable, aunque pueden distinguirse: la limitación de tasa establece un límite estricto y rechaza las solicitudes que superan el umbral con un 429, mientras que el throttling ralentiza o pone en cola las solicitudes excedentes en lugar de rechazarlas por completo.
- Un límite de tasa suele ser un tope de ventana corta, por segundo o por minuto; una cuota es normalmente una asignación mayor durante un período más largo, por día o por mes. Las API a menudo aplican ambos al mismo tiempo.
- Una respuesta 429 significa que el cliente excedió su límite y debe pausar y reintentar de acuerdo con Retry-After (cuando esté presente) o una política de backoff; una respuesta 503 significa que el servidor no está disponible (ya sea por sobrecarga, mantenimiento u otro problema del lado del servidor) en lugar de un problema de cuota del cliente.
Dónde importa la limitación de tasa
- Desarrollar sobre cualquier API: Los clientes que se comportan correctamente respetan Retry-After, aplican backoff exponencial con jitter (esperando progresivamente más tiempo entre reintentos, con aleatoriedad añadida para evitar que varios clientes reintenten simultáneamente) y observan RateLimit-Remaining para reducir la velocidad antes de alcanzar el tope.
- Cargas de trabajo de alto volumen y agénticas: Un sistema de búsqueda agéntica que dispara muchas llamadas en un bucle puede alcanzar los límites rápidamente, por lo que la puesta en cola de solicitudes y el backoff son esenciales.
- Rastreo: Cuando un sitio devuelve 429 repetidos, las arañas web del Buscador reducen su presupuesto de rastreo para él hasta que se reanuden las respuestas normales.
- API del Buscador: Una API del Buscador publica límites de tasa por plan, normalmente como solicitudes por segundo y por mes, por lo que elegir un nivel significa hacer coincidir esos límites con tu volumen de consultas esperado; el manejo elegante de los 429 mantiene confiable un flujo de respuestas cuando el tráfico aumenta, y los límites más altos y predecibles afectan principalmente al rendimiento y a la puesta en cola del lado del cliente, con impactos en la latencia que suelen ser indirectos y dependientes de la carga de trabajo.
La limitación de tasa es parte del contrato entre un cliente y cualquier API: diseñar teniéndola en cuenta, en lugar de en contra de ella, es lo que mantiene estable una integración a medida que crece.
Términos relacionados
Rendimiento, latencia, HTTP 429, Retry-After, backoff exponencial, cuota, clave de API, presupuesto de rastreo, API del Buscador.