AWS Le service de modernisation du mainframe (expérience de l'environnement d'exécution géré) n'est plus ouvert aux nouveaux clients. Pour des fonctionnalités similaires au service de modernisation AWS du mainframe (expérience de l'environnement d'exécution géré), explorez le service de modernisation AWS du mainframe (expérience autogérée). Les clients existants peuvent continuer à utiliser le service normalement. Pour plus d'informations, consultez la section Modification de la disponibilité de la modernisation du AWS mainframe.
Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Configurer la limitation du débit pour AWS Blu Age Runtime
AWS Blu Age Runtime inclut une fonctionnalité intégrée de limitation de débit pour protéger l'application Gapwalk contre les demandes excessives et les abus potentiels. Le système de limitation de débit utilise l'algorithme Token Bucket pour fournir à la fois une capacité de rafale et une limitation de débit soutenue.
Rubriques
Vue d'ensemble des limites de débit
Le système de limitation de débit fournit les fonctionnalités suivantes :
- Algorithme Token Bucket
-
Autorise le trafic en rafale jusqu'à la capacité de rafale configurée
Recharge les jetons à un rythme constant en fonction des demandes par minute
Permet de limiter le débit en douceur sans bloquer les pics de trafic légitimes
- Identification du client
-
Identifie les clients par adresse IP grâce au support de proxy
Supports X-Forwarded-For et X-Real-IP en-têtes
Gère les scénarios d'équilibrage de charge et de proxy inverse
- Automatic Memory Management
-
Nettoie automatiquement les compartiments de limites de débit expirés
Intervalles de nettoyage et délais d'expiration configurables
Empêche les fuites de mémoire dans les applications de longue durée
- Intégration HTTP
-
Renvoie HTTP 429 (trop de demandes) lorsque les limites sont dépassées
Inclut les en-têtes de limite de débit standard dans les réponses
Fournit des informations sur les réessais aux clients
Propriétés de configuration
Configurez la limitation de débit dans votre application-main.yaml fichier :
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)
Descriptions des propriétés
- activé
-
Interrupteur principal pour activer ou désactiver la fonctionnalité de limitation de débit. Par défaut :
false - requestsPerMinute
-
Nombre de demandes autorisées par minute pour une limitation durable du débit. Cela représente le taux de recharge du jeton. Par défaut :
1000 - Capacité d'éclatement
-
Nombre maximum de demandes autorisées par rafale avant que la limite de débit ne s'applique. Devrait être supérieur
requestsPerMinuteà celui prévu pour permettre des pics de trafic. Par défaut :1500 - Inclure les en-têtes
-
S'il faut inclure les en-têtes de limite de débit standard (
X-RateLimit-Limit,X-RateLimit-Remaining,X-RateLimit-Reset) dans les réponses HTTP. Par défaut :true - cleanupIntervalMinutes
-
Intervalle en minutes entre le nettoyage automatique des compartiments de limites de débit expirés. Aide à prévenir les fuites de mémoire. Par défaut :
5 - bucketExpiryHours
-
Durée en heures après laquelle les compartiments de limite de débit non utilisés sont considérés comme expirés et éligibles au nettoyage. Par défaut :
1 - errorMessage
-
Message d'erreur personnalisé renvoyé dans la réponse JSON lorsque la limite de débit est dépassée. Par défaut :
"Too many requests. Try again later." - Conseils sur les listes blanches
-
Liste d'adresses IP séparées par des virgules qui contournent totalement la limitation de débit. Utile pour les bilans de santé ou les systèmes fiables. Par défaut :
empty - perEndpointLimiting
-
S'il faut appliquer des limites de débit distinctes par point de terminaison plutôt que par client uniquement. Non implémenté actuellement. Par défaut :
false
Activer la limitation du débit
Pour activer la limitation du débit avec les paramètres par défaut :
gapwalk: ratelimiting: enabled: true
Identification du client
Le système de limitation du débit identifie les clients selon l'ordre de priorité suivant :
X-Forwarded-For en-tête (première adresse IP si elle est séparée par des virgules)
X-Real-IP en-tête
Adresse distante depuis la requête HTTP
Cela garantit une identification correcte du client lorsque l'application est en retard :
Équilibreurs de charge
Proxies inverses
CDNs
Passerelles API
Exemple d'identification du client
# 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
En-têtes de limite de débit
Lorsque cette option includeHeaders est activée, les en-têtes suivants sont ajoutés aux réponses HTTP :
- Limite X RateLimit -
-
Le plafond tarifaire pour le client (demandes par minute)
- X- RateLimit -Restant
-
Le nombre de demandes restantes dans la fenêtre de limite de débit actuelle
- X- RateLimit -Réinitialiser
-
Heure à laquelle la fenêtre de limite de débit est réinitialisée (horodatage Unix)
Exemples d'en-têtes de réponse
X-RateLimit-Limit: 1000 X-RateLimit-Remaining: 847 X-RateLimit-Reset: 1640995200
Réponse dépassée la limite de débit
Lorsque la limite de débit est dépassée, le système renvoie :
- État du protocole HTTP
429 Trop de demandes
- Content-Type
application/json
- Réessayer-après
Nombre de secondes à attendre avant de réessayer
{ "error": "Rate limit exceeded", "message": "Too many requests. Try again later.", "retryAfter": 60, "timestamp": 1640995140000 }
Gestion de mémoire
Le système de limitation de débit gère automatiquement la mémoire pour éviter les fuites dans les applications de longue durée :
- Nettoyage automatique
-
Fonctionne toutes les
cleanupIntervalMinutesminutesSupprime les seaux inutilisés pendant des heures
bucketExpiryHoursEnregistre les activités de nettoyage à des fins de surveillance
- Efficacité de la mémoire
-
Utilise des structures de données concurrentes pour la sécurité des threads
Création d'un bucket Lazy (uniquement en cas de besoin)
Implémentation efficace d'un token bucket
Surveillance de l'activité de nettoyage
Vérifiez les journaux pour détecter les messages de nettoyage :
INFO RateLimitingService - Cleaned up 15 expired rate limiting buckets