TsgcWebSocketLoadBalancerServer › Właściwości › LoadBalancer
Konfiguruje sposób, w jaki moduł równoważenia obciążenia dystrybuuje połączenia downstream między zarejestrowanymi backendami oraz które protokoły są równoważone.
property LoadBalancer: TsgcWSLoadBalancer_Options read FLoadBalancer write SetLoadBalancer;
LoadBalancing=lbRandom, Protocols.WebSocket=True, Protocols.HTTP=True
W TsgcWebSocketLoadBalancerServer właściwość LoadBalancer steruje zachowaniem samego równoważnika obciążenia w czasie działania — nie konfiguruje klienta rejestrującego się w innym równoważniku obciążenia (ta rola należy do właściwości o tej samej nazwie w TsgcWebSocketServer). Instancje backendowe TsgcWebSocketServer rejestrują się poprzez włączenie własnego LoadBalancer.Enabled i wskazanie LoadBalancer.Host/LoadBalancer.Port na ten komponent; dane rejestracyjne są śledzone wewnętrznie w ServerList.
Właściwości podrzędne:
LoadBalancing — algorytm dystrybucji używany do wyboru backendu przy połączeniu nowego klienta podrzędnego:
lbRandom (domyślny) zwraca losowy zarejestrowany backend.lbConnections zwraca backend z najmniejszą liczbą aktualnie połączonych klientów (least-connections).Protocols.WebSocket — gdy True, połączenia WebSocket są obsługiwane przez moduł równoważenia obciążenia.Protocols.HTTP — gdy ma wartość True, zwykłe żądania HTTP są przekazywane do backendu (zdarzenia OnLoadBalancerHTTPRequest/OnLoadBalancerHTTPResponse pozwalają na inspekcję lub modyfikację pary żądanie/odpowiedź).Powiązanie zwracane nowemu klientowi downstream jest tym, które wybrany backend ogłosił przez własną właściwość LoadBalancer.Bindings. Zdarzenie OnBeforeSendServerBinding umożliwia nadpisanie wyboru tuż przed jego wysłaniem.
oServer := TsgcWebSocketLoadBalancerServer.Create(nil);
oServer.Port := 80;
oServer.LoadBalancer.LoadBalancing := lbConnections;
oServer.LoadBalancer.Protocols.WebSocket := true;
oServer.LoadBalancer.Protocols.HTTP := true;
oServer.Active := true;