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 read • Q2BSTUDIO Team

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.

A BREAK?

Play for a moment before you go

OUR SERVICES

How we can help you

Artificial intelligence

AI agents, chatbots, and intelligent assistants that automate tasks and serve your customers 24/7 to improve the efficiency of your business.

More info

Software Development

Web, mobile, and desktop applications, intranets, e-commerce, SaaS, and management platforms designed for your company's specific needs.

More info

Cloud services

Migration, infrastructure, managed hosting, high availability, and security on Microsoft Azure and Amazon Web Services to help your business scale without limits.

More info

Cybersecurity and pentesting

Security audits, penetration testing and protection of applications, data and infrastructure on-premise and cloud, with ethical hacking and regulatory compliance.

More info

Business Intelligence

Dashboards and data analysis with Power BI: we integrate your sources, design dashboards and KPIs and turn your data into decisions.

More info

Process automation

We automate repetitive tasks and connect your applications with n8n, Power Automate, Make, and RPA, eliminating manual work and increasing productivity.

More info

Training for Companies

We train your teams in technology with criteria: web development, databases, Git, best practices and security, automation with n8n, artificial intelligence for companies and creation of AI solutions with Azure AI Foundry.

More info

Code Auditing

We audit the code that you, your team or an AI create: we tell you what is good and what to improve, we secure it and make it ready for production, web or app.

More info

AI Image Generation

We create for you the images that your business needs with artificial intelligence: product, networks, advertising, illustration and avatars. You tell us what you want and we deliver it ready to use.

More info

AI Video Generation

We create videos with artificial intelligence for you: promotional, networking, virtual presenters, dubbing and animations. You tell us the idea and we will deliver it assembled and ready to publish.

More info

AI Conversational Avatars

We create conversational avatars with AI – digital humans with a face and voice – that serve your customers and teams with the knowledge of your company, on your website, interactive monitors, WhatsApp or Teams.

More info

Online Marketing and AI

Google Ads, Meta Ads, LinkedIn Ads and AI Engine Positioning (GEO/AEO): we attract customers and make your brand appear where they search for you, also on ChatGPT, Gemini and Perplexity.

More info

Do you have a project in mind?

Tell us your vision and we'll turn it into a software solution. Whatever the scope, we make your idea real.

Live Chat