TsgcWebSocketLoadBalancerServer › Propriedades › LoadBalancer
Configura como o balanceador de carga distribui as conexões downstream entre os backends registrados e quais protocolos são balanceados.
property LoadBalancer: TsgcWSLoadBalancer_Options read FLoadBalancer write SetLoadBalancer;
LoadBalancing=lbRandom, Protocols.WebSocket=True, Protocols.HTTP=True
No TsgcWebSocketLoadBalancerServer, a propriedade LoadBalancer controla o comportamento de tempo de execução do próprio balanceador de carga — ela não configura um cliente que se registra em outro balanceador de carga (esse papel pertence à propriedade de mesmo nome em TsgcWebSocketServer). As instâncias backend de TsgcWebSocketServer se registram habilitando seu próprio LoadBalancer.Enabled e apontando LoadBalancer.Host/LoadBalancer.Port para este componente; os dados de registro são rastreados internamente em ServerList.
Subpropriedades:
LoadBalancing — algoritmo de distribuição usado para escolher um backend quando um novo cliente downstream conecta:
lbRandom (padrão) retorna um backend registrado aleatório.lbConnections retorna o backend com o menor número de clientes atualmente conectados (least-connections).Protocols.WebSocket — quando True, as conexões WebSocket são tratadas pelo balanceador de carga.Protocols.HTTP — quando True, requisições HTTP simples são encaminhadas a um backend (use os eventos OnLoadBalancerHTTPRequest/OnLoadBalancerHTTPResponse para inspecionar ou modificar o par requisição/resposta).O binding que é retornado a um novo cliente downstream é o que o backend escolhido anunciou por meio de seu próprio LoadBalancer.Bindings; o evento OnBeforeSendServerBinding permite que você substitua a seleção logo antes de ela ser enviada.
oServer := TsgcWebSocketLoadBalancerServer.Create(nil);
oServer.Port := 80;
oServer.LoadBalancer.LoadBalancing := lbConnections;
oServer.LoadBalancer.Protocols.WebSocket := true;
oServer.LoadBalancer.Protocols.HTTP := true;
oServer.Active := true;