Release Notes

🔐 Límites de Conexión HTTP y Protección contra Sobrecarga


La versión 26 de RUB introduce un sistema avanzado de gestión y limitación de conexiones simultáneas en el servidor HTTP Jetty. Esta mejora fue desarrollada para aumentar la estabilidad y la resiliencia de la plataforma en escenarios de alta demanda, evitando que el servidor quede no disponible o sufra degradación de desempeño cuando se somete a picos de tráfico.

El nuevo mecanismo actúa de forma proactiva, controlando el número de conexiones activas con base en la configuración de threads del servidor. De esta forma, RUB logra mantener respuestas controladas incluso bajo carga máxima, retornando el estado HTTP 503 (Service Unavailable) de manera previsible y sin comprometer el funcionamiento interno de la aplicación.

Cómo funciona el control de conexiones

El sistema calcula automáticamente el límite de conexiones “normales” con base en el parámetro http.maxThreads. Se reservan 8 threads para el funcionamiento interno de Jetty (Acceptors, Selectors y tareas de housekeeping), garantizando que el servidor nunca agote completamente sus recursos. Además, se mantienen permanentemente 3 slots de conexión reservados exclusivamente para solicitudes dirigidas a rutas que inician con /debug/, asegurando que las herramientas de diagnóstico y monitoreo continúen accesibles incluso en situaciones de sobrecarga.

Tipos de limitación implementados

Comportamiento en caso de límite alcanzado

Siempre que cualquiera de los límites se alcanza, el servidor ejecuta las siguientes acciones de forma inmediata:

  1. Interrumpe el procesamiento de la solicitud antes de llegar a la capa de negocio;
  2. Retorna el estado HTTP 503 (Service Unavailable);
  3. Cierra la conexión de forma limpia.

Este enfoque evita la acumulación excesiva de solicitudes en cola, reduciendo el consumo de memoria y manteniendo la latencia bajo control incluso en momentos de alta carga.

Parámetros de configuración

Las configuraciones se realizan en el archivo config.ini del runtime:

Parámetro Descripción Predeterminado
http.maxThreads Número máximo de threads en el pool de Jetty 208
http.maxSessionConnections Límite de conexiones simultáneas por sesión (Authorization) 0 (ilimitado)
http.maxWebConnections Límite global de conexiones para clientes Web (X-Client-Id) 0 (ilimitado)

Beneficios de la implementación

Esta funcionalidad representa un avance importante en la capacidad operativa de RUB, haciendo que la plataforma sea más robusta y esté preparada para entornos con un gran volumen de accesos simultáneos.