TsgcWebSocketLoadBalancerServer › 속성 › LoadBalancer
로드 밸런서가 등록된 백엔드에 다운스트림 연결을 분배하는 방법과 어떤 프로토콜이 밸런싱되는지를 구성합니다.
property LoadBalancer: TsgcWSLoadBalancer_Options read FLoadBalancer write SetLoadBalancer;
LoadBalancing=lbRandom, Protocols.WebSocket=True, Protocols.HTTP=True
TsgcWebSocketLoadBalancerServer에서 LoadBalancer 속성은 로드 밸런서 자체의 런타임 동작을 제어합니다 — 다른 로드 밸런서에 등록하는 클라이언트를 구성하지 않습니다(그 역할은 TsgcWebSocketServer의 동일한 이름의 속성에 속합니다). 백엔드 TsgcWebSocketServer 인스턴스는 자체 LoadBalancer.Enabled를 활성화하고 LoadBalancer.Host/LoadBalancer.Port를 이 구성 요소로 가리킴으로써 등록합니다. 등록 데이터는 ServerList에 내부적으로 추적됩니다.
하위 속성:
LoadBalancing — 새 다운스트림 클라이언트가 연결될 때 백엔드를 선택하는 데 사용되는 분배 알고리즘:
lbRandom(기본값)은 무작위로 등록된 백엔드를 반환합니다.lbConnections는 현재 연결된 클라이언트가 가장 적은 백엔드를 반환합니다(least-connections).Protocols.WebSocket — True인 경우 WebSocket 연결이 로드 밸런서에 의해 처리됩니다.Protocols.HTTP — True인 경우 일반 HTTP 요청이 백엔드로 전달됩니다(요청/응답 쌍을 검사하거나 변경하려면 OnLoadBalancerHTTPRequest/OnLoadBalancerHTTPResponse 이벤트를 사용하십시오).새 다운스트림 클라이언트에 반환되는 바인딩은 선택된 백엔드가 자체 LoadBalancer.Bindings를 통해 광고한 것입니다. OnBeforeSendServerBinding 이벤트를 사용하면 전송되기 직전에 선택을 재정의할 수 있습니다.
oServer := TsgcWebSocketLoadBalancerServer.Create(nil);
oServer.Port := 80;
oServer.LoadBalancer.LoadBalancing := lbConnections;
oServer.LoadBalancer.Protocols.WebSocket := true;
oServer.LoadBalancer.Protocols.HTTP := true;
oServer.Active := true;