TsgcWebSocketLoadBalancerServer › Propriétés › LoadBalancer
Configure la façon dont le répartiteur de charge distribue les connexions descendantes sur les backends enregistrés et quels protocoles sont équilibrés.
property LoadBalancer: TsgcWSLoadBalancer_Options read FLoadBalancer write SetLoadBalancer;
LoadBalancing=lbRandom, Protocols.WebSocket=True, Protocols.HTTP=True
Sur TsgcWebSocketLoadBalancerServer, la propriété LoadBalancer contrôle le comportement d'exécution de l'équilibreur de charge lui-même — elle ne configure pas un client qui s'enregistre auprès d'un autre équilibreur de charge (ce rôle appartient à la propriété du même nom sur TsgcWebSocketServer). Les instances TsgcWebSocketServer back-end s'enregistrent en activant leur propre LoadBalancer.Enabled et en pointant LoadBalancer.Host/LoadBalancer.Port vers ce composant ; les données d'enregistrement sont suivies en interne dans ServerList.
Sous-propriétés :
LoadBalancing — algorithme de distribution utilisé pour choisir un backend lors de la connexion d'un nouveau client en aval :
lbRandom (par défaut) retourne un backend enregistré aléatoirement.lbConnections retourne le backend avec le moins de clients actuellement connectés (least-connections).Protocols.WebSocket — lorsque True, les connexions WebSocket sont gérées par l'équilibreur de charge.
Protocols.HTTP — lorsque True, les requêtes HTTP ordinaires sont transmises à un backend (utilisez les événements OnLoadBalancerHTTPRequest/OnLoadBalancerHTTPResponse pour inspecter ou modifier la paire requête/réponse).La liaison retournée à un nouveau client en aval est celle que le backend choisi a annoncée via son propre LoadBalancer.Bindings ; l'événement OnBeforeSendServerBinding vous permet de remplacer la sélection juste avant qu'elle soit envoyée.
oServer := TsgcWebSocketLoadBalancerServer.Create(nil);
oServer.Port := 80;
oServer.LoadBalancer.LoadBalancing := lbConnections;
oServer.LoadBalancer.Protocols.WebSocket := true;
oServer.LoadBalancer.Protocols.HTTP := true;
oServer.Active := true;