Qu’est-ce qu’Azure SignalR ? #
Azure SignalR Service est un service géré proposé par Microsoft Azure qui facilite l'intégration de fonctionnalités de communication en temps réel dans les applications Web et mobiles. Tirant parti de la bibliothèque SignalR, il permet une messagerie instantanée bidirectionnelle entre les clients et les serveurs. Le service est conçu pour simplifier le développement d'applications nécessitant des mises à jour en temps réel, telles que les applications de chat, les jeux multijoueurs et les outils collaboratifs, en gérant les complexités de l'infrastructure sous-jacente. Azure SignalR Service excelle également en termes d'évolutivité, lui permettant de s'adapter automatiquement aux différentes charges de travail et garantissant que les applications restent réactives pendant les périodes de trafic élevé.
Ce service prend en charge un large éventail de plates-formes client, ce qui le rend adapté au développement multiplateforme, notamment aux applications Web, mobiles, de bureau et IoT. Il offre de solides capacités de gestion des connexions, simplifiant le suivi de la présence des utilisateurs et la gestion des connexions, et intègre des fonctionnalités de sécurité pour protéger les communications en temps réel. De plus, Azure SignalR Service peut être intégré de manière transparente à d'autres services Azure et applications tierces, ce qui en fait un choix polyvalent pour les développeurs cherchant à intégrer des fonctionnalités en temps réel dans leurs applications tout en tirant parti de l'infrastructure cloud d'Azure.
Pourquoi est-il important d’équilibrer la charge d’Azure SignalR ? #
L’équilibrage de charge d’un service Azure SignalR est important pour plusieurs raisons. Avant tout, il garantit une haute disponibilité et une fiabilité de la communication en temps réel au sein de vos applications. En répartissant les connexions entrantes et le trafic sur plusieurs instances du service Azure SignalR, l’équilibrage de charge évite qu’une seule instance soit submergée, réduisant ainsi le risque d’interruptions de service dues à des surcharges ou à des pannes potentielles. Ceci est particulièrement crucial pour les applications qui reposent sur des mises à jour en temps réel, car les temps d'arrêt ou les mauvaises performances peuvent entraîner une expérience utilisateur négative.
Deuxièmement, l’équilibrage de charge du service Azure SignalR permet d’optimiser les performances et l’évolutivité. Azure SignalR Service est conçu pour évoluer automatiquement en fonction de la demande, et l'utilisation d'équilibreurs de charge peut améliorer cette évolutivité. Lorsque le trafic augmente, l'équilibreur de charge peut acheminer les connexions vers des instances de service supplémentaires, garantissant ainsi que votre application reste réactive lors des pics de trafic. À l’inverse, il peut également répartir le trafic hors des instances sous-utilisées, contribuant ainsi à réduire les coûts. Dans l’ensemble, l’équilibrage de charge du service Azure SignalR est une pratique fondamentale pour maintenir des performances cohérentes, une haute disponibilité et une utilisation efficace des ressources dans les applications de communication en temps réel hébergées sur la plateforme Azure.
Configurer Sticky Sessions ou Session Affinity dans l'équilibreur de charge #
In RELIANOID Load Balancer, la configuration des sessions persistantes pour SignalR est très simple. Si une ferme HTTP est utilisée, Persistence by Adresse IP du client peut être activé dans le service SignalR. Aussi, Cookie Insert peut être utilisé pour une affinité plus élaborée où l'équilibreur de charge a créé un cookie par utilisateur.

Pour les batteries L4, peut également être configuré pour une session persistante en configurant la persistance par IP source.

Tous les types de persistance sont accompagnés d'un délai d'attente qui indique l'expiration d'une telle session si le client ne demande plus le service virtuel. Cette valeur dépendra de la convivialité réelle de l'application, mais des valeurs comprises entre 60 et 120 secondes pourraient généralement être une bonne option.