TsgcWebSocketLoadBalancerServer › Propiedades › LoadBalancer
Configura cómo el balanceador de carga distribuye las conexiones descendentes entre los backends registrados y qué protocolos se equilibran.
property LoadBalancer: TsgcWSLoadBalancer_Options read FLoadBalancer write SetLoadBalancer;
LoadBalancing=lbRandom, Protocols.WebSocket=True, Protocols.HTTP=True
En TsgcWebSocketLoadBalancerServer, la propiedad LoadBalancer controla el comportamiento en tiempo de ejecución del propio equilibrador de carga; no configura un cliente que se registra en otro equilibrador de carga (ese rol corresponde a la propiedad homónima en TsgcWebSocketServer). Las instancias de TsgcWebSocketServer de backend se registran habilitando su propio LoadBalancer.Enabled y apuntando LoadBalancer.Host/LoadBalancer.Port a este componente; los datos de registro se rastrean internamente en ServerList.
Subpropiedades:
LoadBalancing — algoritmo de distribución utilizado para seleccionar un backend cuando se conecta un nuevo cliente descendente:
lbRandom (predeterminado) devuelve un backend registrado aleatorio.lbConnections devuelve el backend con el menor número de clientes conectados en ese momento (menos conexiones).Protocols.WebSocket — cuando es True, el balanceador de carga gestiona las conexiones WebSocket.Protocols.HTTP — cuando es True, las solicitudes HTTP simples se reenvían a un backend (use los eventos OnLoadBalancerHTTPRequest/OnLoadBalancerHTTPResponse para inspeccionar o modificar el par solicitud/respuesta).El enlace que se devuelve a un nuevo cliente descendente es el que el backend seleccionado anunció a través de su propio LoadBalancer.Bindings; el evento OnBeforeSendServerBinding le permite anular la selección justo antes de que se enví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;