POLITICA DE COOKIES

Q2BSTUDIO.COM utiliza cookies técnicas, analíticas, de sesión y de publicidad con la finalidad de prestar un mejor servicio. No obstante, necesitamos su consentimiento explícito para poder utilizarlas. Así mismo puede cambiar la configuración de las cookies u obtener más información aquí .

Limitación de tasa: 5 algoritmos para proteger tus APIs

Limitación de tasa: 5 algoritmos para proteger tus APIs

Publicado el 01/09/2025

El rate limiting es una técnica esencial para proteger servicios web de picos de tráfico y abusos por parte de un mismo cliente. Sin él, los servidores pueden saturarse, los costos en la nube dispararse y la experiencia de los usuarios legítimos degradarse. Al imponer un número máximo de solicitudes por cliente en un intervalo de tiempo, se garantiza la estabilidad del sistema y un reparto justo de recursos.

En este artículo repasamos cinco algoritmos de rate limiting muy utilizados, explicando cómo funcionan, sus ventajas y desventajas, con descripciones visuales para ayudarte a decidir cuál se adapta mejor a tu API o servicio.

Por qué importa el rate limiting

Imagina un bot enviando miles de peticiones por segundo. Podría consumir CPU y memoria hasta provocar caídas, inflar la factura de servicios cloud y degradar el rendimiento de tus usuarios. El rate limiting asigna una cuota como 100 solicitudes por minuto por usuario o IP. Cuando se supera, el servidor bloquea temporalmente las peticiones extra y responde con HTTP 429 Too Many Requests. Comunicar los límites en cabeceras como X-Rate-Limit-Remaining y X-Rate-Limit-Reset permite a los clientes aplicar estrategias de reintento y backoff inteligente.

1. Token Bucket

Cómo funciona

Imagina un cubo con capacidad máxima de tokens. Los tokens se rellenan de forma constante, por ejemplo 10 por segundo. Cada solicitud consume un token. Si hay tokens, la petición se acepta y se descuenta uno; si no, se rechaza. Visualmente, un flujo continuo repone el cubo mientras cada petición comprueba si hay tokens disponibles.

Ventajas

Sencillo de implementar y de entender. Permite ráfagas cortas hasta la capacidad del cubo, absorbiendo picos transitorios.

Desventajas

El uso de memoria crece por usuario si se aplica por identidad. No garantiza un ritmo perfectamente uniforme.

2. Leaky Bucket

Cómo funciona

Piensa en un cubo con un orificio en la base. Las solicitudes entran por arriba y se procesan a un ritmo constante a través de la fuga. Si el cubo está lleno, las peticiones adicionales se descartan. Visualmente, las solicitudes se acumulan pero salen a velocidad fija, suavizando los picos.

Ventajas

Impone un caudal estable que evita que los picos bruscos saturen el sistema. Procesamiento predecible y consistente.

Desventajas

Gestiona mal las ráfagas repentinas porque las solicitudes extra se descartan de inmediato. Implementación algo más compleja que Token Bucket.

3. Fixed Window Counter

Cómo funciona

Divide el tiempo en ventanas fijas como intervalos de 1 minuto. Cada ventana arranca con un contador a cero y cada solicitud lo incrementa. Si el contador supera el límite, se deniegan peticiones hasta que comience la siguiente ventana. Visualmente, cada ventana reinicia el contador y las peticiones se aceptan hasta llegar al umbral.

Ventajas

Muy fácil de entender e implementar. Límites claros por ventana.

Desventajas

Problemas en los bordes de ventana, pudiendo permitir el doble del ritmo previsto si coinciden ráfagas al final e inicio de ventanas contiguas.

4. Sliding Window Log

Cómo funciona

Mantiene un registro de marcas de tiempo de cada solicitud. Al llegar una nueva, elimina marcas fuera del tamaño de ventana y cuenta las restantes. Si el conteo está por debajo del límite, se acepta y se añade su marca; si no, se rechaza. Visualmente, una ventana se desliza en el tiempo depurando timestamps antiguos y calculando con precisión las solicitudes vigentes.

Ventajas

Alta precisión sin efectos de borde. Ideal para APIs de bajo volumen donde la exactitud es prioritaria.

Desventajas

Consume memoria en alto volumen por almacenar timestamps. Requiere búsquedas y limpiezas frecuentes con impacto en rendimiento.

5. Sliding Window Counter

Cómo funciona

Combina la simplicidad del contador por ventana fija con la precisión del log deslizante. Rastrea el conteo en la ventana actual y la anterior y calcula una suma ponderada según el solapamiento con la ventana deslizante. Por ejemplo, si ha transcurrido el 75 por ciento de la ventana actual, el peso es 25 por ciento de la ventana anterior más 75 por ciento de la actual. Si esa suma, junto con la nueva solicitud, supera el límite, se rechaza.

Ventajas

Más preciso que Fixed Window Counter. Más eficiente en memoria que Sliding Window Log. Suaviza los picos en los bordes de ventana.

Desventajas

Algo más complejo de implementar que el contador de ventana fija.

Cómo elegir el algoritmo adecuado

Escala del sistema: en alto tráfico suelen funcionar bien Token Bucket o Sliding Window Counter por eficiencia. Patrones de tráfico: si son muy bursty, Token Bucket absorbe picos; si necesitas un caudal constante, Leaky Bucket es preferible. Granularidad y precisión: Sliding Window Log aporta máxima exactitud con mayor coste en memoria. Complejidad: Fixed Window Counter es el más simple, mientras que Sliding Window Counter equilibra precisión y coste.

Buenas prácticas operativas

Comunica siempre los límites en cabeceras de respuesta como X-Rate-Limit-Remaining, X-Rate-Limit-Limit y X-Rate-Limit-Reset. Implementa 429 Too Many Requests con Retry-After cuando proceda. Añade métricas y alertas por tasa de rechazos, latencia y errores para calibrar límites. Considera límites por usuario, IP, token y endpoint crítico, y combina protección con WAF, cacheo y colas.

Conclusión

El rate limiting protege tus APIs y garantiza un uso justo de recursos. Conociendo fortalezas y compromisos de Token Bucket, Leaky Bucket, Fixed Window Counter, Sliding Window Log y Sliding Window Counter, podrás elegir la opción que mejor se ajuste a tu arquitectura, cargas y objetivos de negocio.

Sobre Q2BSTUDIO

En Q2BSTUDIO diseñamos y construimos aplicaciones a medida y software a medida de alto rendimiento, con prácticas de arquitectura y seguridad de nivel empresarial. Integramos rate limiting en gateways, microservicios y plataformas serverless para que tus productos escalen con control en servicios cloud aws y azure. Si buscas expertos para crear o modernizar tu plataforma, descubre nuestro enfoque de desarrollo en aplicaciones a medida y software a medida y cómo desplegamos, monitorizamos y optimizamos en la nube en servicios cloud AWS y Azure.

Además contamos con un equipo especializado en inteligencia artificial e ia para empresas, diseño de agentes IA y automatización de procesos, ciberseguridad y servicios inteligencia de negocio con power bi, para que tu organización evolucione con datos, seguridad y velocidad. Si te interesa llevar tu API al siguiente nivel con observabilidad, escalado elástico y políticas avanzadas de control de consumo, hablamos.

Fin del artículo, inicio de la diversión
Construyendo software juntos

Dando vida a tus ideas desde 2008

Diseñamos aplicaciones móviles y de escritorio innovadoras que cumplen con tus requisitos específicos y mejoran la eficiencia operativa.
Más info
Cuéntanos tu visión
Sea cual sea el alcance, podemos convertir tu idea en realidad. Envíanosla y charlemos sobre tu proyecto o una colaboración futura.
Contáctanos
artículos destacados
Live Chat
Enviado correctamente.

Gracias por confiar en Q2BStudio