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 • Equip 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?

Juga una estona abans de marxar

ELS NOSTRES SERVEIS

Com et podem ajudar

Intel·ligència artificial

Agents d'IA, chatbots i assistents intel·ligents que automatitzen tasques i atenen els teus clients 24/7 per millorar l'eficiència del teu negoci.

Més info

Desenvolupament de programari

Aplicacions web, mòbils i d'escriptori, intranets, e-commerce, SaaS i plataformes de gestió dissenyades per a les necessitats concretes de la teva empresa.

Més info

Serveis cloud

Migració, infraestructura, hosting gestionat, alta disponibilitat i seguretat en Microsoft Azure i Amazon Web Services perquè el teu negoci escali sense límits.

Més info

Ciberseguretat i pentesting

Auditories de seguretat, test d'intrusió (pentesting) i protecció d'aplicacions, dades i infraestructura on-premise i cloud, amb hacking ètic i compliment normatiu.

Més info

Business Intelligence

Quadres de comandament i anàlisi de dades amb Power BI: integrem les teves fonts, dissenyem dashboards i KPIs i convertim les teves dades en decisions.

Més info

Automatització de processos

Automatitzem tasques repetitives i connectem les teves aplicacions amb n8n, Power Automate, Make i RPA, eliminant treball manual i augmentant la productivitat.

Més info

Formació per a empreses

Formem els teus equips en tecnologia amb criteri: desenvolupament web, bases de dades, Git, bones pràctiques i seguretat, automatització amb n8n, intel·ligència artificial per a empreses i creació de solucions d'IA amb Azure AI Foundry.

Més info

Auditoria de codi

Auditem el codi que creguis tu, el teu equip o una IA: et diem què està bé i què millorar, el securitzem i el deixem llest per a producció, web o app.

Més info

Generació d'imatges amb IA

Creem per tu les imatges que necessita el teu negoci amb intel·ligència artificial: producte, xarxes, publicitat, il·lustració i avatars. Tu ens dius què vols i t'ho lliurem llest per fer servir.

Més info

Generació de vídeos amb IA

Creem per tu vídeos amb intel·ligència artificial: promocionals, per a xarxes, presentadors virtuals, doblatge i animacions. Ens comptes la idea i t'ho lliurem muntat i llest per publicar.

Més info

Avatars conversacionals amb IA

Creem avatars conversacionals amb IA —humans digitals amb cara i veu— que atenen els teus clients i equips amb el coneixement de la teva empresa, a la teva web, monitors interactius, WhatsApp o Teams.

Més info

Màrqueting Online i IA

Google Ads, Meta Ads, LinkedIn Ads i posicionament en motors d'IA (GEO/AEO): captem clients i fem que la teva marca aparegui on et busquen, també a ChatGPT, Gemini i Perplexity.

Més info

Tens un projecte en ment?

Explica'ns la teva visió i la convertim en una solució de programari. Sigui quin sigui l'abast, fem realitat la teva idea.

Live Chat