¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Cómo Escalar WebSockets para Alta Concurrencia: Estrategias y Desafíos

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 26 Vistas
0
Cargando...

De qué trata el artículo


Escalar WebSockets para alta concurrencia presenta desafíos únicos. Este análisis explora estos desafíos, discute limitaciones de escalado vertical y horizontal, e introduce una estrategia de optimización mediante:




  • Eliminación de buffers

  • Actualización de copia cero

  • Netpoll




Estas optimizaciones reducen el uso de memoria más de 10 veces , haciéndolo rentable para conexiones WebSocket a gran escala.

Escalando WebSockets de la manera correcta


Las interacciones en tiempo real son el corazón de la web moderna. Y entregarlas a audiencias pequeñas es relativamente fácil, gracias a protocolos como WebSockets. Hay 2 tipos principales de comunicación:


Comunicación Unidireccional:




  • Actualizaciones de deportes en vivo

  • Paneles de control en tiempo real, transmisiones

  • Seguimiento de ubicación...


Comunicación Bidireccional:




  • Chat

  • Eventos virtuales y aulas virtuales

  • Encuestas y cuestionarios...


Pero hay un desafío...


...y es escalar tu solución para manejar Decenas de Miles de usuarios/conexiones y más.



Desafíos en Escalar WebSockets vs. HTTP


Escalar WebSockets es notablemente más complejo que escalar HTTP debido a sus naturalezas fundamentalmente diferentes:


HTTP es sin estado y directo. Cada solicitud es autocontenida, lo que facilita su distribución en múltiples servidores mediante balanceadores de carga. HTTP sirve los mismos datos a cada cliente y los olvida rápidamente.


WebSockets, por otro lado, son persistentes y con estado. Escalarlos implica dos desafíos principales:


Mantener Conexiones Persistentes : Los WebSockets dependen de conexiones persistentes entre servidores y potencialmente un gran número de clientes. Esto requiere una gestión cuidadosa y asignación de recursos.


Sincronización de Datos : A menudo es necesario compartir estado entre clientes/servidores, creando un desafío de sincronización complejo. Por ejemplo, en una aplicación de chat, los mensajes deben ser compartidos entre todos los participantes.



Escalado Horizontal vs Vertical


Escalado Vertical: Aumentar la capacidad de un solo servidor mediante la actualización de sus componentes de hardware como CPU, RAM o almacenamiento.

Escalado Horizontal: Ampliar la capacidad de un sistema agregando más servidores o nodos para distribuir la carga de trabajo, comúnmente utilizado en la computación en la nube para escalabilidad.


Pero, ¿por qué son difíciles de escalar los WebSockets?

El principal desafío es que las conexiones a tu servidor WebSocket deben ser persistentes. E incluso una vez que has escalado tus nodos de servidor tanto vertical como horizontalmente, también necesitas proporcionar una solución para compartir datos entre los nodos.

Problemas de Escalado Vertical


Escalar verticalmente tiene sus pros y sus contras, como hemos visto. Pero, ¿hay algo específico en los WebSockets que hace que el escalado vertical sea una mala elección?

Limitaciones del SO - Descriptores de archivos - Cada conexión TCP utiliza un descriptor de archivo. Los sistemas operativos limitan la cantidad de descriptores de archivo que se pueden abrir a la vez, y cada proceso en ejecución también puede tener un límite. Cuando tienes un gran número de conexiones TCP abiertas, puedes toparte con estos límites, lo que puede causar que se rechacen nuevas conexiones u otros problemas.


Mayor posibilidad de tiempo de inactividad - A menos que tengas un servidor de respaldo que pueda manejar operaciones y solicitudes, necesitarás un tiempo

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

Sin respuestas

No hay respuestas para mostrar No hay respuestas para mostrar Se el primero en responder

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?