O componente TsgcWebSocketLoadBalancerServer foi aprimorado na versão sgcWebSockets 2024.3.0. Agora suporta o protocolo HTTP (anteriormente suportava apenas WebSockets) e possui novos eventos para ajustar finamente as requisições HTTP. O servidor Load Balancer agora descende de TsgcWebSocketHTTPServer, herdando todos os seus métodos e propriedades.
Configuração do servidor de balanceamento
O servidor Load Balancer é descendente de TsgcWebSocketHTTPServer, portanto consulte a documentação sobre o TsgcWebSocketHTTPServer para saber como configurá-lo.
Além disso, o Load Balancer possui a propriedade LoadBalancer, com as seguintes opções:
- LoadBalancing: configura como as conexões são distribuídas
- lbRandom: (padrão) a cada nova requisição de conexão de um cliente, retorna um servidor aleatório.
- lbConnections: a cada nova requisição de conexão de um cliente, retorna o servidor com menos clientes conectados.
- Protocols: configura quais protocolos estão habilitados
- WebSocket: se verdadeiro, as conexões WebSocket serão tratadas pelo servidor Load Balancer.
- HTTP: se verdadeiro, as conexões HTTP serão tratadas pelo servidor Load Balancer.
Configuração dos servidores de backup
Os servidores de backup (servidores atrás do balanceador) podem ser um TsgcWebSocketServer, TsgcWebSocketHTTPServer ou um DataSnap Server.
Esses servidores têm uma propriedade chamada LoadBalancer onde você pode configurar a conexão entre o LoadBalancer Server e os servidores de backup.
- Enabled: defina como true para usar como servidor de backup.
- Host: o host onde está o LoadBalancer.
- Port: a porta de escuta do LoadBalancer.
- Guid: id único que identifica este servidor.
- Bindings: os endereços públicos acessíveis para onde as conexões serão encaminhadas. Exemplo: se o servidor WebSocket de backup estiver escutando na porta 8000 com endereço IP 1.1.1.1, use: ws://1.1.1.1:8000;
- AutoRegisterBindings: se habilitado, o LoadBalancer Server usará a propriedade Bindings do servidor de backup para configurar as ligações públicas.
- AutoRestart: em segundos; se maior que zero, o cliente load balancer do servidor de backup habilitará um watchdog interno que a cada x segundos verificará se a conexão está ativa e, se estiver fechada, tentará reconectar.
Exemplo
Veja abaixo um link para baixar um demo compilado para Windows que mostra como configurar um servidor Load Balancing que encaminha aleatoriamente as requisições HTTP para 3 servidores.
