Le composant TsgcWebSocketLoadBalancerServer a été amélioré dans sgcWebSockets 2024.3.0. Il prend désormais en charge le protocole HTTP (auparavant uniquement WebSockets) et dispose de quelques nouveaux événements pour affiner les requêtes HTTP. Le serveur Load Balancer descend maintenant de TsgcWebSocketHTTPServer, et hérite donc de toutes ses méthodes et propriétés.
Configuration du serveur Load Balancer
Le serveur Load Balancer est un descendant de TsgcWebSocketHTTPServer : lis la documentation du TsgcWebSocketHTTPServer pour savoir comment le configurer.
De plus, le Load Balancer dispose de la propriété LoadBalancer, qui contient les propriétés suivantes :
- LoadBalancing : configure ici la façon de répartir les connexions
- lbRandom : (par défaut) chaque fois qu'un nouveau client demande une connexion, le serveur renvoie un serveur aléatoire.
- lbConnections : chaque fois qu'un nouveau client demande une connexion, le serveur renvoie celui qui a le moins de clients connectés.
- Protocols : configure les protocoles activés
- WebSocket : si true, les connexions websocket sont gérées par le serveur Load Balancer.
- HTTP : si true, les connexions http sont gérées par le serveur Load Balancer.
Configuration du serveur de backup
Les serveurs de backup (les serveurs derrière le load balancer) peuvent être un TsgcWebSocketServer, un TsgcWebSocketHTTPServer ou un serveur DataSnap.
Ces serveurs ont une propriété appelée LoadBalancer où tu peux configurer la connexion entre le serveur LoadBalancer et les serveurs de backup.
- Enabled : mets à true si tu veux utiliser ce serveur comme serveur de backup.
- Host : l'hôte où se trouve le LoadBalancer.
- Port : le port d'écoute du LoadBalancer.
- Guid : identifiant unique de ce serveur.
- Bindings : les adresses publiques accessibles où les connexions seront transférées. Exemple : si le serveur WebSocket de backup écoute sur le port 8000 et que l'adresse ip est 1.1.1.1, utilise : ws://1.1.1.1:8000;
- AutoRegisterBindings : si activé, le serveur LoadBalancer utilisera la propriété Bindings du serveur de backup pour configurer les bindings publics.
- AutoRestart : en secondes ; si supérieur à zéro, le client load balancer du serveur de backup active un watchdog interne qui vérifie toutes les x secondes si la connexion est active ; si elle est fermée, il essaie de se reconnecter.
Exemple
Tu trouveras ci-dessous un lien pour télécharger une démo compilée pour Windows qui montre comment mettre en place un serveur Load Balancing qui transfère aléatoirement les requêtes HTTP vers 3 serveurs.
