De component TsgcWebSocketLoadBalancerServer is verbeterd in sgcWebSockets-versie 2024.3.0. Hij ondersteunt nu het HTTP-protocol (voorheen alleen WebSockets) en heeft een paar nieuwe events om HTTP-aanvragen fijn af te stemmen. De load-balancer-server is nu een afgeleide van TsgcWebSocketHTTPServer en erft dus alle methoden en properties daarvan.
Configuratie van de load-balancer-server
De load-balancer-server is een afgeleide van TsgcWebSocketHTTPServer, dus lees de documentatie over TsgcWebSocketHTTPServer om te zien hoe je hem configureert.
Daarnaast heeft de load-balancer de property LoadBalancer, met de volgende properties:
- LoadBalancing: configureer hier hoe de verbindingen worden verdeeld
- lbRandom: (standaard) telkens wanneer een nieuwe client een nieuwe verbinding aanvraagt, wordt een willekeurige server teruggegeven.
- lbConnections: telkens wanneer een nieuwe client een nieuwe verbinding aanvraagt, wordt de server met de minste verbonden clients teruggegeven.
- Protocols: configureer welke protocollen zijn ingeschakeld
- WebSocket: indien true worden de WebSocket-verbindingen afgehandeld door de load-balancer-server.
- HTTP: indien true worden de HTTP-verbindingen afgehandeld door de load-balancer-server.
Configuratie van backup-servers
De backup-servers (de servers achter de load-balancer) kunnen een TsgcWebSocketServer, TsgcWebSocketHTTPServer of een DataSnap-server zijn.
Deze servers hebben een property LoadBalancer waarin je de verbinding tussen de LoadBalancer-server en de backup-servers configureert.
- Enabled: zet op true als je deze als backup-server wilt gebruiken.
- Host: de host waar de LoadBalancer draait.
- Port: de luisterende poort van de LoadBalancer.
- Guid: uniek id dat deze server identificeert.
- Bindings: de publieke adressen waarnaar de verbindingen worden doorgestuurd. Voorbeeld: als de backup-WebSocket-server luistert op poort 8000 en het ip-adres 1.1.1.1 is, gebruik je: ws://1.1.1.1:8000;
- AutoRegisterBindings: indien ingeschakeld gebruikt de LoadBalancer-server de property Bindings van de backup-server om de publieke bindings te configureren.
- AutoRestart: in seconden; als deze waarde groter is dan nul, schakelt de load-balancer-client van de backup-server een interne watchdog in die elke x seconden controleert of de verbinding nog actief is; is deze gesloten, dan probeert hij opnieuw verbinding te maken.
Voorbeeld
Hieronder vind je een link om een gecompileerde demo voor Windows te downloaden die laat zien hoe je een load-balancer-server opzet die HTTP-aanvragen willekeurig naar 3 servers doorstuurt.
