TsgcWebSocketLoadBalancerServer › Properties › LoadBalancer
Configureert hoe de load balancer downstream-verbindingen verdeelt over geregistreerde backends en welke protocollen worden gebalanceerd.
property LoadBalancer: TsgcWSLoadBalancer_Options read FLoadBalancer write SetLoadBalancer;
LoadBalancing=lbRandom, Protocols.WebSocket=True, Protocols.HTTP=True
Op TsgcWebSocketLoadBalancerServer beheert de eigenschap LoadBalancer het runtimegedrag van de load balancer zelf — het configureert geen client die zich registreert bij een andere load balancer (die rol behoort toe aan de gelijknamige eigenschap op TsgcWebSocketServer). Backend TsgcWebSocketServer-instanties registreren zich door hun eigen LoadBalancer.Enabled in te schakelen en LoadBalancer.Host/LoadBalancer.Port op deze component te richten; registratiegegevens worden intern bijgehouden in ServerList.
Sub-eigenschappen:
LoadBalancing — distributiealgoritme dat wordt gebruikt om een backend te kiezen wanneer een nieuwe downstream-client verbinding maakt:
lbRandom (standaard) retourneert een willekeurige geregistreerde backend.lbConnections retourneert de backend met de minste momenteel verbonden clients (minste verbindingen).Protocols.WebSocket — wanneer True, worden WebSocket-verbindingen afgehandeld door de load balancer.Protocols.HTTP — wanneer True, worden gewone HTTP-verzoeken doorgestuurd naar een backend (gebruik de gebeurtenissen OnLoadBalancerHTTPRequest/OnLoadBalancerHTTPResponse om het verzoek/antwoordpaar te inspecteren of te muteren).De binding die aan een nieuwe downstream-client wordt geretourneerd, is datgene wat de gekozen backend heeft geadverteerd via zijn eigen LoadBalancer.Bindings; de gebeurtenis OnBeforeSendServerBinding stelt u in staat de selectie te overschrijven vlak voordat deze wordt verzonden.
oServer := TsgcWebSocketLoadBalancerServer.Create(nil);
oServer.Port := 80;
oServer.LoadBalancer.LoadBalancing := lbConnections;
oServer.LoadBalancer.Protocols.WebSocket := true;
oServer.LoadBalancer.Protocols.HTTP := true;
oServer.Active := true;