¿Qué es Azure SignalR? #
Azure SignalR Service es un servicio administrado ofrecido por Microsoft Azure que facilita la integración de funciones de comunicación en tiempo real en aplicaciones web y móviles. Aprovechando la biblioteca SignalR, permite la mensajería instantánea bidireccional entre clientes y servidores. El servicio está diseñado para simplificar el desarrollo de aplicaciones que requieren actualizaciones en tiempo real, como aplicaciones de chat, juegos multijugador y herramientas colaborativas, al manejar las complejidades de la infraestructura subyacente. Azure SignalR Service también destaca por su escalabilidad, lo que le permite ajustarse automáticamente a diferentes cargas de trabajo y garantizar que las aplicaciones sigan respondiendo durante períodos de mucho tráfico.
Este servicio admite una amplia gama de plataformas de clientes, lo que lo hace adecuado para el desarrollo multiplataforma, incluidas aplicaciones web, móviles, de escritorio y de IoT. Ofrece sólidas capacidades de gestión de conexiones, lo que simplifica el seguimiento de la presencia del usuario y el manejo de la conexión, e incorpora funciones de seguridad para salvaguardar la comunicación en tiempo real. Además, Azure SignalR Service se puede integrar perfectamente con otros servicios de Azure y aplicaciones de terceros, lo que lo convierte en una opción versátil para los desarrolladores que buscan incorporar funcionalidad en tiempo real en sus aplicaciones y al mismo tiempo aprovechar la infraestructura de nube de Azure.
¿Por qué es importante equilibrar la carga de Azure SignalR? #
El equilibrio de carga de un servicio Azure SignalR es importante por varios motivos. En primer lugar, garantiza una alta disponibilidad y confiabilidad de la comunicación en tiempo real dentro de sus aplicaciones. Al distribuir las conexiones entrantes y el tráfico entre varias instancias del servicio Azure SignalR, el equilibrio de carga evita que una sola instancia se vea abrumada, lo que reduce el riesgo de interrupciones del servicio debido a sobrecargas o posibles fallas. Esto es especialmente crucial para las aplicaciones que dependen de actualizaciones en tiempo real, ya que el tiempo de inactividad o el bajo rendimiento pueden resultar en una experiencia de usuario negativa.
En segundo lugar, el servicio Azure SignalR de equilibrio de carga ayuda a optimizar el rendimiento y la escalabilidad. Azure SignalR Service está diseñado para escalar automáticamente según la demanda y el uso de equilibradores de carga puede mejorar esta escalabilidad. Cuando el tráfico aumenta, el equilibrador de carga puede enrutar conexiones a instancias de servicio adicionales, lo que garantiza que su aplicación siga respondiendo durante los picos de tráfico. Por el contrario, también puede distribuir el tráfico lejos de las instancias infrautilizadas, lo que ayuda a ahorrar costos. En general, el equilibrio de carga del servicio Azure SignalR es una práctica fundamental para mantener un rendimiento constante, una alta disponibilidad y una utilización eficiente de los recursos en aplicaciones de comunicación en tiempo real hospedadas en la plataforma Azure.
Configurar Sticky Sessions o Session Affinity en el balanceador de carga #
In RELIANOID Load Balancer, configurar sesiones fijas para SignalR es muy simple. Si se utiliza una granja HTTP, Persistencia by Dirección IP del cliente se puede habilitar en el servicio SignalR. También, Inserto de galletas se puede utilizar para una afinidad más elaborada en la que el equilibrador de carga crea una cookie por usuario.

Para granjas L4, también se puede configurar para sesión persistente configurando la persistencia por IP de origen.

Todo tipo de persistencia viene con un tiempo de espera que indica el vencimiento de dicha sesión si el cliente ya no solicita el servicio virtual. Dicho valor dependerá de la usabilidad real de la aplicación, pero valores de 60 a 120 segundos podrían ser generalmente una buena opción.