API Rate Limiting: Throttling، Quota y Protección DDoS
API rate limiting previene el abuso y la sobrecarga de su API. يغطي هذا الدليل estrategias de rate limiting، throttling، gestión de quota y protección DDoS.
آخر تحديث:¿Qué es rate limiting?
Rate limiting es limitar el número de solicitudes que se pueden hacer en un período de tiempo específico (segundo، minuto، hora).
Propósitos: prevenir el abuso de la API، asegurar el uso justo، proteger los recursos del servidor، reducir los ataques DDoS.
Cuando se excede el rate limit: retorna el código de estado HTTP 429 (Too Many Requests). especifica cuándo reintentar con el header Retry-After.
Rate limiting aumenta la disponibilidad y confiabilidad de la API. asegura el cumplimiento de SLA (Service Level Agreement).
Algoritmos de rate limiting
Fixed Window: contador mantenido en ventana de tiempo fija (ej. 100 solicitudes por minuto). simple pero problema de boundary (spike en los límites de la ventana).
Sliding Window Log: almacene el timestamp de cada solicitud. cuente las solicitudes en los últimos N segundos. más preciso pero usa más memoria.
Sliding Window Counter: híbrido de fixed window y sliding window log. menos memoria، resultado más preciso.
Token Bucket: los tokens se producen a una tasa específica. cada solicitud consume un token. proporciona soporte de burst.
Leaky Bucket: las solicitudes se agregan a la cola y se procesan a una tasa fija. proporciona suavizado de tráfico.
Estrategias de rate limiting
Basado en IP: límite basado en la dirección IP del solicitante. simple pero los usuarios detrás de NAT (misma IP) tienen problemas.
Basado en usuario: límite basado en el usuario autenticado. más justo. identifique al usuario con API key o JWT.
Basado en endpoint: límite diferente para cada endpoint. /login (5/min) vs /users (100/min).
Tiered: límites diferentes para diferentes tipos de usuarios. Free (100/min)، Pro (1000/min)، Enterprise (10000/min).
Global vs por-endpoint: límite global (para toda la API) + límite por-endpoint. use ambos juntos.
Implementación
Redis: almacene los contadores de rate limit en Redis. contador atómico con comandos INCR y EXPIRE. ideal para rate limiting distribuido.
Middleware: middleware de Express.js (express-rate-limit)، Django (django-ratelimit)، Spring Boot (Bucket4j).
API Gateway: rate limiting con Kong، AWS API Gateway، Cloudflare. gestión y monitoreo centralizados.
Response headers: retorne información de límite con headers X-RateLimit-Limit، X-RateLimit-Remaining، X-RateLimit-Reset.
Client SDK: las bibliotecas cliente leen la información de rate limit y realizan retry y backoff automáticamente.
Protección DDoS
Rate limiting por sí solo no proporciona protección DDoS. los ataques DDoS vienen en volúmenes que exceden el rate limit.
Cloudflare: protección DDoS، WAF (Web Application Firewall)، gestión de bots. tier gratuito disponible.
AWS Shield: protección DDoS para servicios de AWS. standard (gratuito) y advanced (de pago).
Reputación de IP: bloquee IPs con mala reputación. use listas de reputación como Spamhaus، AbuseIPDB.
CAPTCHA: verifique el tráfico sospechoso con CAPTCHA. reCAPTCHA v3 (invisible) o hCaptcha.
Geo-blocking: bloquee el tráfico de países específicos (si es necesario).
Mejores prácticas
Graceful degradation: dé un mensaje de error claro al usuario cuando se exceda el rate limit. especifique cuándo reintentar con el header Retry-After.
Monitoreo: monitoree los hits de rate limit. el aumento anormal puede indicar un ataque o un bug.
Whitelist: ponga en whitelist las IPs de confianza (servicios internos، APIs de socios).
Documentación: declare claramente la política de rate limit en la documentación de la API. información de límite، ventana y retry.
Pruebas: pruebe el comportamiento del rate limit con load testing. use k6، Artillery o JMeter.
أدوات ذات صلة
أدلة الاستخدام خطوة بخطوة
مقالات عملية حول هذا الموضوع
Cache HTTP وCDN: استراتيجيات Cache لتحسين أداء الويب
Cache HTTP وCDN (Content Delivery Network) يحسّنان أداء الويب de manera dramatic.
قائمة تحقق SEO التقنية: تحسين الموقع والفهرسة
SEO التقنية يغطي factores técnicos que afectan la capacidad de los motores de búsqueda para rastrear، indexar y posicionar su…