🔐 Limites de Conexão HTTP e Proteção contra Sobrecarga
- Data de publicação: 18 de Junho de 2026
- Versão necessária: Plugin Core / Framework 11.261.9411
A versão 26 do RUB introduz um sistema avançado de gestão e limitação de conexões simultâneas no servidor HTTP Jetty. Esta melhoria foi desenvolvida para aumentar a estabilidade e a resiliência da plataforma em cenários de alta demanda, evitando que o servidor fique indisponível ou sofra degradação de desempenho quando submetido a picos de tráfego.
O novo mecanismo atua de forma proativa, controlando o número de conexões ativas com base na configuração de threads do servidor. Dessa forma, o RUB consegue manter respostas controladas mesmo sob carga máxima, retornando status HTTP 503 (Service Unavailable) de maneira previsível e sem comprometer o funcionamento interno da aplicação.
Como funciona o controle de conexões
O sistema calcula automaticamente o limite de conexões “normais” com base no parâmetro http.maxThreads. São reservadas 8 threads para o funcionamento interno do Jetty (Acceptors, Selectors e tarefas de housekeeping), garantindo que o servidor nunca esgote completamente seus recursos. Além disso, são mantidos permanentemente 3 slots de conexão reservados exclusivamente para requisições direcionadas a caminhos que iniciam com /debug/, assegurando que ferramentas de diagnóstico e monitoramento continuem acessíveis mesmo em situações de sobrecarga.
Tipos de limitação implementados
- Limite Global (Normal): Aplica-se a todas as requisições que não são de debug. Ao atingir o limite calculado, novas requisições recebem imediatamente uma resposta HTTP 503, sem serem enfileiradas no sistema operacional.
- Limite por Sessão (
http.maxSessionConnections): Quando configurado com valor superior a zero, controla o número máximo de conexões simultâneas por identificador de sessão (headerAuthorization). Cada login ativo é tratado de forma independente. - Limite para Clientes Web (
http.maxWebConnections): Define um limite global específico para acessos realizados através da interface Web ou Vue, servindo como uma camada adicional de proteção contra picos de tráfego originados do front-end.
Comportamento em caso de limite atingido
Sempre que qualquer um dos limites é atingido, o servidor executa as seguintes ações de forma imediata:
- Interrompe o processamento da requisição antes de chegar à camada de negócio;
- Retorna o status HTTP 503 (Service Unavailable);
- Encerra a conexão de forma limpa.
Essa abordagem evita o acúmulo excessivo de requisições em fila, reduzindo o consumo de memória e mantendo a latência sob controle mesmo em momentos de alta carga.
Parâmetros de configuração
As configurações são realizadas no arquivo config.ini do runtime:
| Parâmetro | Descrição | Padrão |
|---|---|---|
http.maxThreads |
Número máximo de threads no pool do Jetty | 208 |
http.maxSessionConnections |
Limite de conexões simultâneas por sessão (Authorization) | 0 (ilimitado) |
http.maxWebConnections |
Limite global de conexões para clientes Web (X-Client-Id) | 0 (ilimitado) |
Benefícios da implementação
- Maior estabilidade da plataforma sob alta carga;
- Prevenção de thread starvation e indisponibilidade total do servidor;
- Acesso garantido a ferramentas de diagnóstico mesmo em sobrecarga;
- Respostas mais rápidas e previsíveis em situações de pico;
- Redução do consumo desnecessário de recursos do sistema operacional.
Essa funcionalidade representa um avanço importante na capacidade operacional do RUB, tornando a plataforma mais robusta e preparada para ambientes com grande volume de acessos simultâneos.
Disponibilidade
Disponivel no plugin Framework a partir de 18/06/2026