Cargando equilibrio de carga de 100,000 WebSockets (y alguna forma de sobrevivirlo)

En este artículo, aprende a manejarse eficazmente con centenares de WebSockets y sobrevivir al desafío, desde optimizaciones para mejorar el rendimiento hasta estrategias para mantener la estabilidad en tus aplicaciones.

5 nov 2025 • 5 min de lectura • Equipo Q2BSTUDIO

Balanceando 100,000 WebSockets (y sobrevivirlo)

Cuando el gráfico se puso vertical no empezó con explosiones sino con líneas ascendentes en un tablero que primero celebra y luego aterroriza. CPU al 98% y memoria evaporándose. Conexiones que no dejaban de subir hasta que nos dimos cuenta de que teníamos 100000 WebSockets vivos, no peticiones por segundo sino conexiones persistentes que se negaban a colgar. Crees que entiendes escalado hasta que te enfrentas a WebSockets: no es tanto rendimiento como resistencia emocional. Balancearlos no es dividir y conquistar sino suplicar que no se caiga la conexión de ese único usuario mientras 99999 más arden.

Los WebSockets son esa visita que nunca se va. HTTP aparece pide algo y se va; WebSockets se mudan, mantienen estado, envían heartbeats y esperan que estés disponible. Con HTTP puedes escalar horizontalmente con relativa facilidad; con WebSockets escalas relaciones. Una conexión necesita ser sticky o muere al saltar de nodo. Las sesiones sticky suenan fáciles; en producción son trampas adhesivas: un nodo puede terminar con 20000 usuarios conversadores mientras otros duermen. Round robin provoca saltos y pérdidas. Least connections falla cuando algunas conexiones viven para siempre. IP hashing se rompe con CDNs y proxies. Escalar WebSockets te enseña que cada conexión persistente es una promesa y los servidores son pésimos cumpliéndolas.

HAProxy fue nuestro veterano que resolvió el problema. No es brillante ni tiene marketing pomposo pero hace lo que debe: manejar decenas de miles de conexiones persistentes con estabilidad. Con HAProxy bajó la carga de CPU, la latencia se estabilizó y por primera vez en días la sala respiró. Pero para sacarle jugo hay que ganárselo: ajustar bufsize, maxconn, pinning de hilos, nbproc, ulimit -n te lleva por un camino de negociación que exige paciencia y conocimiento profundo del sistema. No es plug-and-play es plug-and-pray, pero una vez afinado respeta las conexiones y no deja a los usuarios colgando. Si Nginx es el popular del grupo, HAProxy es el que ya optimizó el sonido y sostiene la red con calma.

Nginx era la apuesta obvia: rápido, elegante, el cuchillo suizo de los servidores web. En tráfico corto y estático brilla. Para WebSockets largos y charlatanes, empezó bien: dashboards verdes, métricas calmadas. Luego las conexiones comenzaron a caer en silencio; clientes que se reconectaban sin razón; sockets que vivían pero no transmitían nada. Ajustes en proxy_pass upgrade timeouts buffering y el módulo stream arreglaron cosas temporalmente pero no la raíz. Nginx es excelente sirviendo tráfico efímero y estático pero cuando las conexiones son largas y volátiles se resiente y termina padeciendo por intentar complacer a todos.

La idea de construir nuestro proxy en Go fue tentadora y peligrosa. Al principio funcionó: logs limpios y estabilidad aparente. En una hora aparecieron timeouts misteriosos, goroutines bloqueadas y fugas de memoria. Añadimos métricas y más logs hasta que el proxy pasaba más tiempo documentando su sufrimiento que enroutando paquetes. Encontramos fugas, parcheamos y surgieron nuevas en forma de deadlocks y contención. Al final alguien dijo que habíamos reimplementado HAProxy peor y la realidad golpeó: construir un balanceador fiable no es mover bytes, es manejar timeouts, buffers del kernel, concurrencia y todos los rincones raros del TCP. Nuestro proxy terminó en el cementerio de experimentos porque técnicamente funcionaba pero emocionalmente nos agotó.

La lección que dolió aprender fue que no se trataba del proxy sino de la arquitectura. No estábamos balanceando tráfico sino estado, adhesión y confianza. Cuando rediseñamos pensando en conexiones persistentes todo cambió. Dejar de forzar todo a través de un solo equilibrador, distribuir conexiones en shards, mover estado de sesión a un almacén compartido y diseñar lifecycles de conexión robustos fue crucial. Redis, colas de mensajes y registros de conexiones dejaron de ser extras y pasaron a ser la base. Empezamos a pensar de forma asíncrona, implementamos backpressure y health checks y el sistema dejó de temblar.

Al final nos quedamos con HAProxy porque ofrecía predictibilidad y esa predictibilidad vale oro tras una crisis. Nginx volvió a lo suyo: servir archivos estáticos y enrutar HTTP. El proxy casero quedó archivado como monumento a la confianza excesiva. Lo valioso fue que ese fracaso nos obligó a entender por qué HAProxy funcionaba y a identificar cuellos de botella y suposiciones ocultas. Aprendimos respeto por las capas desde hilos del kernel hasta buffers de socket y por el ingeniero de redes que nos avisó de no tocar tráfico stateful sin estar listos.

En Q2BSTUDIO, empresa de desarrollo de software y aplicaciones a medida, convertimos esas lecciones en prácticas concretas. Ofrecemos soluciones de software a medida y aplicaciones a medida pensadas desde la arquitectura para soportar tráfico persistente y requisitos de alta disponibilidad. Integramos servicios cloud aws y azure para escalar infraestructuras, diseñamos estrategias de ciberseguridad y pentesting que protegen conexiones críticas y aplicamos inteligencia artificial y agentes IA para mejorar la resiliencia de sistemas en tiempo real. Si buscas desarrollar soluciones robustas visita nuestra página de desarrollo de aplicaciones multiplataforma y para optimizar despliegues en la nube consulta nuestros servicios cloud aws y azure.

Finalmente, escalar WebSockets es más rito de paso que técnica específica. Aprendes paciencia, humildad y el arte de respetar las persistencias. Para proyectos que requieren alta disponibilidad, servicios inteligencia de negocio, integración de power bi, ia para empresas o estrategias de inteligencia artificial aplicada, en Q2BSTUDIO ofrecemos consultoría y desarrollo práctico que une software a medida, ciberseguridad y despliegue en la nube. Si tu reto es mantener 100000 WebSockets o simplemente construir una arquitectura que no te deje despierto, la respuesta no está en un solo proxy sino en un diseño que entienda cómo viven y respiran las conexiones.

Palabras clave: aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA, power bi.

¿UNA PAUSA?

Juega un momento antes de irte

NUESTROS SERVICIOS

Cómo podemos ayudarte

Inteligencia artificial

Agentes de IA, chatbots y asistentes inteligentes que automatizan tareas y atienden a tus clientes 24/7 para mejorar la eficiencia de tu negocio.

Más info

Desarrollo de software

Aplicaciones web, móviles y de escritorio, intranets, e-commerce, SaaS y plataformas de gestión diseñadas para las necesidades concretas de tu empresa.

Más info

Servicios cloud

Migración, infraestructura, hosting gestionado, alta disponibilidad y seguridad en Microsoft Azure y Amazon Web Services para que tu negocio escale sin límites.

Más info

Ciberseguridad y pentesting

Auditorías de seguridad, test de intrusión (pentesting) y protección de aplicaciones, datos e infraestructura on-premise y cloud, con hacking ético y cumplimiento normativo.

Más info

Business Intelligence

Cuadros de mando y análisis de datos con Power BI: integramos tus fuentes, diseñamos dashboards y KPIs y convertimos tus datos en decisiones.

Más info

Automatización de procesos

Automatizamos tareas repetitivas y conectamos tus aplicaciones con n8n, Power Automate, Make y RPA, eliminando trabajo manual y aumentando la productividad.

Más info

Formación para empresas

Formamos a tus equipos en tecnología con criterio: desarrollo web, bases de datos, Git, buenas prácticas y seguridad, automatización con n8n, inteligencia artificial para empresas y creación de soluciones de IA con Azure AI Foundry.

Más info

Auditoría de código

Auditamos el código que creas tú, tu equipo o una IA: te decimos qué está bien y qué mejorar, lo securizamos y lo dejamos listo para producción, web o app.

Más info

Generación de imágenes con IA

Creamos por ti las imágenes que necesita tu negocio con inteligencia artificial: producto, redes, publicidad, ilustración y avatares. Tú nos dices qué quieres y te lo entregamos listo para usar.

Más info

Generación de vídeos con IA

Creamos por ti vídeos con inteligencia artificial: promocionales, para redes, presentadores virtuales, doblaje y animaciones. Nos cuentas la idea y te lo entregamos montado y listo para publicar.

Más info

Avatares conversacionales con IA

Creamos avatares conversacionales con IA —humanos digitales con cara y voz— que atienden a tus clientes y equipos con el conocimiento de tu empresa, en tu web, monitores interactivos, WhatsApp o Teams.

Más info

Marketing Online e IA

Google Ads, Meta Ads, LinkedIn Ads y posicionamiento en motores de IA (GEO/AEO): captamos clientes y hacemos que tu marca aparezca donde te buscan, también en ChatGPT, Gemini y Perplexity.

Más info

¿Tienes un proyecto en mente?

Cuéntanos tu visión y la convertimos en una solución de software. Sea cual sea el alcance, hacemos realidad tu idea.

Live Chat