TsgcWebSocketLoadBalancerServer › Properties › 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 返回当前连接客户端数量最少的后端(最少连接)。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;