AWS O Mainframe Modernization Service (experiência em Managed Runtime Environment) não está mais aberto a novos clientes. Para recursos semelhantes ao AWS Mainframe Modernization Service (experiência em Managed Runtime Environment), explore o AWS Mainframe Modernization Service (experiência autogerenciada). Os clientes atuais podem continuar usando o serviço normalmente. Para obter mais informações, consulte Alteração na disponibilidade AWS da modernização do mainframe.
As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Configurar a limitação de taxa para o AWS Blu Age Runtime
AWS O Blu Age Runtime inclui funcionalidade integrada de limitação de taxa para proteger o aplicativo Gapwalk contra solicitações excessivas e possíveis abusos. O sistema de limitação de taxa usa o algoritmo Token Bucket para fornecer capacidade de intermitência e limitação de taxa sustentada.
Tópicos
Visão geral da limitação de taxa
O sistema de limitação de taxa fornece os seguintes recursos:
- Algoritmo de token bucket
-
Permite tráfego intermitente até a capacidade de intermitência configurada
Recarrega tokens a uma taxa constante com base nas solicitações por minuto
Oferece uma limitação suave da taxa sem bloquear picos de tráfego legítimos
- Identificação do cliente
-
Identifica clientes por endereço IP com suporte a proxy
Suportes X-Forwarded-For e X-Real-IP cabeçalhos
Lida com cenários de balanceador de carga e proxy reverso
- Gerenciamento automatizado da memória
-
Limpa automaticamente os intervalos de limite de taxa expirados
Intervalos de limpeza e prazos de expiração configuráveis
Evita vazamentos de memória em aplicativos de longa duração
- Integração HTTP
-
Retorna HTTP 429 (muitas solicitações) quando os limites são excedidos
Inclui cabeçalhos de limite de taxa padrão nas respostas
Fornece informações sobre novas tentativas para clientes
Propriedades de configuração
Configure a limitação de taxa em seu application-main.yaml arquivo:
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)
Descrições da propriedade
- habilitado
-
Interruptor principal para ativar ou desativar a funcionalidade de limitação de taxa. Padrão:
false - requestsPerMinute
-
Número de solicitações permitidas por minuto para limitação sustentada da taxa. Isso representa a taxa de recarga do token. Padrão:
1000 - Capacidade de explosão
-
Número máximo de solicitações permitidas em uma sequência antes da aplicação da limitação de taxa. Deve ser maior do que
requestsPerMinutepermitir picos de tráfego. Padrão:1500 - Incluir cabeçalhos
-
Se os cabeçalhos de limite de taxa padrão (
X-RateLimit-Limit,X-RateLimit-Remaining,X-RateLimit-Reset) devem ser incluídos nas respostas HTTP. Padrão:true - cleanupIntervalMinutes
-
Intervalo em minutos entre a limpeza automática dos intervalos de limite de taxa expirados. Ajuda a evitar vazamentos de memória. Padrão:
5 - bucketExpiryHours
-
Tempo em horas após o qual os intervalos de limite de tarifa não utilizados são considerados expirados e elegíveis para limpeza. Padrão:
1 - errorMessage
-
Mensagem de erro personalizada retornada na resposta JSON quando o limite de taxa é excedido. Padrão:
"Too many requests. Try again later." - Dicas de White List
-
Lista separada por vírgula de endereços IP que ignoram totalmente a limitação de taxa. Útil para verificações de saúde ou sistemas confiáveis. Padrão:
empty - perEndpointLimiting
-
Se deve aplicar limites de taxa separados por endpoint em vez de apenas por cliente. Atualmente não implementado. Padrão:
false
Ativar limitação de taxa
Para ativar a limitação de taxa com as configurações padrão:
gapwalk: ratelimiting: enabled: true
Identificação do cliente
O sistema de limitação de taxa identifica clientes usando a seguinte ordem de prioridade:
X-Forwarded-For cabeçalho (primeiro IP se separado por vírgula)
X-Real-IP cabeçalho
Endereço remoto da solicitação HTTP
Isso garante a identificação adequada do cliente quando o aplicativo está atrasado:
Balanceadores de cargas
Proxies reversos
CDNs
Gateways de API
Exemplo de identificação do 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
Cabeçalhos de limite de taxa
Quando includeHeaders ativado, os seguintes cabeçalhos são adicionados às respostas HTTP:
- X- RateLimit -Limite
-
O limite máximo de tarifa para o cliente (solicitações por minuto)
- X- RateLimit -Restante
-
O número de solicitações restantes na janela de limite de taxa atual
- X- RateLimit -Reiniciar
-
A hora em que a janela de limite de taxa é redefinida (timestamp Unix)
Exemplos de cabeçalhos de resposta
X-RateLimit-Limit: 1000 X-RateLimit-Remaining: 847 X-RateLimit-Reset: 1640995200
Limite de taxa de resposta excedido
Quando o limite de taxa é excedido, o sistema retorna:
- Status HTTP
429, muitas solicitações
- Content-Type
application/json
- Retry-After
Número de segundos de espera antes de tentar novamente
{ "error": "Rate limit exceeded", "message": "Too many requests. Try again later.", "retryAfter": 60, "timestamp": 1640995140000 }
Gerenciamento de memória
O sistema de limitação de taxa gerencia automaticamente a memória para evitar vazamentos em aplicativos de longa execução:
- Limpeza automática
-
É executado a cada
cleanupIntervalMinutesminutoRemove baldes não utilizados por horas
bucketExpiryHoursRegistra a atividade de limpeza para monitoramento
- Eficiência de memória
-
Usa estruturas de dados simultâneas para segurança de threads
Criação lenta de buckets (somente quando necessário)
Implementação eficiente de token bucket
Monitorando a atividade de limpeza
Verifique os registros das mensagens de limpeza:
INFO RateLimitingService - Cleaned up 15 expired rate limiting buckets