AWS El servicio de modernización de mainframes (experiencia en entornos de ejecución gestionados) ya no está abierto a nuevos clientes. Para obtener prestaciones similares a las del Servicio de Modernización de AWS Mainframe (experiencia en entornos de ejecución gestionados), explore el Servicio de Modernización de AWS Mainframe (experiencia autogestionada). Los clientes existentes pueden seguir utilizando el servicio con normalidad. Para obtener más información, consulte Cambio en la disponibilidad de la modernización del AWS mainframe.
Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Configurar el límite de velocidad para AWS Blu Age Runtime
AWS Blu Age Runtime incluye una función de limitación de velocidad integrada para proteger la aplicación Gapwalk de solicitudes excesivas y posibles abusos. El sistema de limitación de velocidad utiliza el algoritmo Token Bucket para proporcionar tanto la capacidad de ráfaga como una limitación de velocidad sostenida.
Temas
Descripción general de los límites de velocidad
El sistema de limitación de velocidad ofrece las siguientes funciones:
- Algoritmo Token Bucket
-
Permite el tráfico en ráfagas hasta la capacidad de ráfaga configurada
Recarga los tokens a un ritmo constante en función de las solicitudes por minuto
Proporciona una limitación de velocidad fluida sin bloquear los picos de tráfico legítimos
- Identificación del cliente
-
Identifica a los clientes por dirección IP con soporte de proxy
Soportes X-Forwarded-For y X-Real-IP encabezados
Maneja escenarios de equilibrio de carga y proxy inverso
- Automatic Memory Management
-
Limpia automáticamente los intervalos de límite de velocidad vencidos
Intervalos de limpieza y tiempos de caducidad configurables
Evita las pérdidas de memoria en aplicaciones de ejecución prolongada
- Integración de HTTP
-
Devuelve HTTP 429 (demasiadas solicitudes) cuando se superan los límites
Incluye encabezados de límite de velocidad estándar en las respuestas
Proporciona información útil para los clientes
Propiedades de configuración
Configura la limitación de velocidad en tu application-main.yaml archivo:
gapwalk: ratelimiting: enabled: true # Enable/disable rate limiting requestsPerMinute: 1000 # Sustained rate limit per minute burstCapacity: 1500 # Maximum burst requests allowed includeHeaders: true # Include X-RateLimit-* headers cleanupIntervalMinutes: 5 # Cleanup interval for expired buckets bucketExpiryHours: 1 # Hours after which unused buckets expire errorMessage: "Too many requests. Try again later." # Custom error message whitelistIps: "" # Comma-separated IPs to bypass limiting perEndpointLimiting: false # Apply limits per endpoint (not implemented)
Descripciones de propiedades
- enabled
-
Interruptor maestro para activar o desactivar la funcionalidad de limitación de velocidad. Valor predeterminado:
false - requestsPerMinute
-
Número de solicitudes permitidas por minuto para limitar la velocidad de forma sostenida. Esto representa la tasa de recarga del token. Valor predeterminado:
1000 - Capacidad de ráfaga
-
Número máximo de solicitudes permitidas en una ráfaga antes de que se aplique el límite de velocidad. Debe ser mayor que
requestsPerMinutepara permitir picos de tráfico. Valor predeterminado:1500 - Incluya encabezados
-
Si se deben incluir encabezados de límite de velocidad estándar (
X-RateLimit-Limit,X-RateLimit-Remaining,X-RateLimit-Reset) en las respuestas HTTP. Valor predeterminado:true - cleanupIntervalMinutes
-
Intervalo en minutos entre la limpieza automática de los intervalos de límite de velocidad vencidos. Ayuda a evitar pérdidas de memoria. Valor predeterminado:
5 - bucketExpiryHours
-
Tiempo en horas tras el cual los intervalos de límite de velocidad no utilizados se consideran vencidos y aptos para ser limpiados. Valor predeterminado:
1 - errorMessage
-
Se devuelve un mensaje de error personalizado en la respuesta de JSON cuando se supera el límite de velocidad. Valor predeterminado:
"Too many requests. Try again later." - Consejos de la lista blanca
-
Lista de direcciones IP separadas por comas que eluden por completo la limitación de velocidad. Útil para controles de estado o sistemas confiables. Valor predeterminado:
empty - perEndpointLimiting
-
Si se deben aplicar límites de velocidad separados por punto final en lugar de solo por cliente. Actualmente no está implementado. Valor predeterminado:
false
Habilite la limitación de velocidad
Para activar la limitación de velocidad con la configuración predeterminada:
gapwalk: ratelimiting: enabled: true
Identificación del cliente
El sistema de limitación de velocidad identifica a los clientes según el siguiente orden de prioridad:
X-Forwarded-For encabezado (primera IP si está separada por comas)
X-Real-IP encabezado
Dirección remota de la solicitud HTTP
Esto garantiza la correcta identificación del cliente cuando la aplicación está inactiva:
Equilibradores de carga
Proxies inversos
CDNs
Puertas de enlace API
Ejemplo de identificación de cliente
# Direct connection Client IP: 192.168.1.100 # Behind load balancer with X-Forwarded-For X-Forwarded-For: 203.0.113.45, 192.168.1.100 Client IP: 203.0.113.45 (first IP used) # Behind reverse proxy with X-Real-IP X-Real-IP: 203.0.113.45 Client IP: 203.0.113.45
Cabeceras de límite de velocidad
Cuando includeHeaders está habilitada, se agregan los siguientes encabezados a las respuestas HTTP:
- Límite X RateLimit
-
El límite máximo de tarifa para el cliente (solicitudes por minuto)
- X- RateLimit -Restante
-
El número de solicitudes que quedan en la ventana de límite de velocidad actual
- X- RateLimit -Restablecer
-
Hora a la que se restablece la ventana de límite de velocidad (marca de tiempo de Unix)
Ejemplos de encabezados de respuesta
X-RateLimit-Limit: 1000 X-RateLimit-Remaining: 847 X-RateLimit-Reset: 1640995200
Se ha superado el límite de velocidad de respuesta
Cuando se supera el límite de velocidad, el sistema devuelve:
- Estado HTTP
429 Demasiadas solicitudes
- Contenido-Tipo
application/json
- Retry-After
Número de segundos de espera antes de volver a intentarlo
{ "error": "Rate limit exceeded", "message": "Too many requests. Try again later.", "retryAfter": 60, "timestamp": 1640995140000 }
Administración de la memoria
El sistema de limitación de velocidad gestiona automáticamente la memoria para evitar fugas en aplicaciones de larga duración:
- Limpieza automática
-
Se ejecuta cada minuto
cleanupIntervalMinutesElimina los cubos que no se hayan utilizado durante horas
bucketExpiryHoursRegistra la actividad de limpieza para su supervisión
- Eficiencia de la memoria
-
Utiliza estructuras de datos simultáneas para garantizar la seguridad de los subprocesos
Creación de cubos diferidos (solo cuando es necesario)
Implementación eficiente de un depósito de fichas
Supervisión de la actividad de limpieza
Compruebe los registros para ver los mensajes de limpieza:
INFO RateLimitingService - Cleaned up 15 expired rate limiting buckets