TsgcWebSocketLoadBalancerServer › Özellikler › LoadBalancer
Yük dengeleyicinin, aşağı akış bağlantılarını kayıtlı arka uçlara nasıl dağıttığını ve hangi protokollerin dengelendiğini yapılandırır.
property LoadBalancer: TsgcWSLoadBalancer_Options read FLoadBalancer write SetLoadBalancer;
LoadBalancing=lbRandom, Protocols.WebSocket=True, Protocols.HTTP=True
TsgcWebSocketLoadBalancerServer'da LoadBalancer özelliği, yük dengeleyicinin kendisinin çalışma zamanı davranışını kontrol eder — başka bir yük dengeleyiciye karşı kaydolan bir istemciyi yapılandırmaz (bu rol, TsgcWebSocketServer'daki aynı adlı özelliğe aittir). Backend TsgcWebSocketServer örnekleri, kendi LoadBalancer.Enabled'larını etkinleştirerek ve LoadBalancer.Host/LoadBalancer.Port'u bu bileşene yönlendirerek kaydolur; kayıt verileri dahili olarak ServerList'te izlenir.
Alt özellikler:
LoadBalancing — yeni bir alt akış istemcisi bağlandığında bir arka uç seçmek için kullanılan dağıtım algoritması:
lbRandom (varsayılan) rastgele kayıtlı bir arka uç döndürür.lbConnections şu anda en az bağlı istemciye sahip arka ucu döndürür (en az bağlantı).Protocols.WebSocket — True olduğunda, WebSocket bağlantıları yük dengeleyici tarafından işlenir.Protocols.HTTP — True olduğunda, düz HTTP istekleri bir backend'e iletilir (istek/yanıt çiftini incelemek veya değiştirmek için OnLoadBalancerHTTPRequest/OnLoadBalancerHTTPResponse olaylarını kullanın).
Yeni bir aşağı akış istemcisine döndürülen binding, seçilen arka ucun kendi LoadBalancer.Bindings aracılığıyla duyurduğu şeydir; OnBeforeSendServerBinding olayı, seçimi gönderilmeden hemen önce geçersiz kılmanıza olanak tanır.
oServer := TsgcWebSocketLoadBalancerServer.Create(nil);
oServer.Port := 80;
oServer.LoadBalancer.LoadBalancing := lbConnections;
oServer.LoadBalancer.Protocols.WebSocket := true;
oServer.LoadBalancer.Protocols.HTTP := true;
oServer.Active := true;