El componente TsgcWebSocketLoadBalancerServer se ha mejorado en la versión sgcWebSockets 2024.3.0. Ahora admite el protocolo HTTP (antes solo admitía WebSockets) y tiene un par de nuevos eventos para afinar las peticiones HTTP. El servidor del balanceador de carga ahora desciende de TsgcWebSocketHTTPServer, por lo que hereda todos los métodos y propiedades de este.
Configuración del servidor balanceador
El servidor del balanceador de carga es descendiente de TsgcWebSocketHTTPServer, así que lee la documentación sobre TsgcWebSocketHTTPServer para saber cómo configurarlo.
Además, el balanceador de carga tiene la propiedad LoadBalancer, que tiene las siguientes propiedades:
- LoadBalancing: configura aquí cómo distribuir las conexiones
- lbRandom: (predeterminado) cada vez que un nuevo cliente solicita una nueva conexión, devolverá un servidor aleatorio.
- lbConnections: cada vez que un nuevo cliente solicita una nueva conexión, devolverá el servidor con menos clientes conectados.
- Protocolos: configura qué protocolos están activados
- WebSocket: si es true, las conexiones websocket serán gestionadas por el servidor balanceador de carga.
- HTTP: si es true, las conexiones http serán gestionadas por el servidor balanceador de carga.
Configuración del servidor de respaldo
Los servidores de respaldo (los servidores detrás del balanceador de carga) pueden ser un TsgcWebSocketServer, TsgcWebSocketHTTPServer o un servidor DataSnap.
Esos servidores tienen una propiedad llamada LoadBalancer donde puedes configurar la conexión entre el servidor LoadBalancer y los servidores de respaldo.
- Enabled: establece a true si quieres usarlo como servidor de respaldo.
- Host: el host donde está el LoadBalancer.
- Port: el puerto de escucha del LoadBalancer.
- Guid: id único que identifica este servidor.
- Bindings: las direcciones públicas accesibles a las que se reenviarán las conexiones. Ejemplo: si el servidor de respaldo WebSocket está escuchando en el puerto 8000 y la dirección ip es 1.1.1.1, usa lo siguiente: ws://1.1.1.1:8000;
- AutoRegisterBindings: si está activado, el servidor LoadBalancer usará la propiedad Bindings del servidor de respaldo para configurar los bindings públicos.
- AutoRestart: en segundos, si es mayor que cero, el cliente del balanceador de carga del servidor de respaldo activará un watchdog interno que cada x segundos comprobará si la conexión está viva; si está cerrada, intentará reconectar.
Muestra
A continuación encontrarás un enlace para descargar una demo compilada para Windows que muestra cómo poner un servidor balanceador de carga que reenvíe las peticiones HTTP aleatoriamente a 3 servidores.
