TsgcWebSocketLoadBalancerServer › Proprietà › LoadBalancer
Configura il modo in cui il load balancer distribuisce le connessioni downstream tra i backend registrati e quali protocolli vengono bilanciati.
property LoadBalancer: TsgcWSLoadBalancer_Options read FLoadBalancer write SetLoadBalancer;
LoadBalancing=lbRandom, Protocols.WebSocket=True, Protocols.HTTP=True
Su TsgcWebSocketLoadBalancerServer la proprietà LoadBalancer controlla il comportamento a runtime del load balancer stesso — non configura un client che si registra presso un altro load balancer (questo ruolo spetta alla proprietà con lo stesso nome su TsgcWebSocketServer). Le istanze di backend TsgcWebSocketServer si registrano abilitando la propria LoadBalancer.Enabled e puntando LoadBalancer.Host/LoadBalancer.Port a questo componente; i dati di registrazione vengono tracciati internamente in ServerList.
Sotto-proprietà:
LoadBalancing — algoritmo di distribuzione utilizzato per scegliere un backend quando un nuovo client downstream si connette:
lbRandom (predefinito) restituisce un backend registrato casuale.lbConnections restituisce il backend con il minor numero di client attualmente connessi (least-connections).Protocols.WebSocket — quando True, le connessioni WebSocket vengono gestite dal load balancer.Protocols.HTTP — quando True, le richieste HTTP semplici vengono inoltrate a un backend (utilizzi gli eventi OnLoadBalancerHTTPRequest/OnLoadBalancerHTTPResponse per ispezionare o modificare la coppia richiesta/risposta).Il binding restituito a un nuovo client downstream è quello che il backend scelto ha pubblicizzato tramite il proprio LoadBalancer.Bindings; l'evento OnBeforeSendServerBinding consente di sovrascrivere la selezione appena prima che venga inviata.
oServer := TsgcWebSocketLoadBalancerServer.Create(nil);
oServer.Port := 80;
oServer.LoadBalancer.LoadBalancing := lbConnections;
oServer.LoadBalancer.Protocols.WebSocket := true;
oServer.LoadBalancer.Protocols.HTTP := true;
oServer.Active := true;