コンポーネント TsgcWebSocketLoadBalancerServer は WebSocket と HTTP プロトコルの負荷分散を可能にします。WebSocket プロトコルの場合、サーバーのグループ間でメッセージを分散し、ランダムシーケンスまたは最少接続数アルゴリズムを使用してクライアント接続を分散します。
ロードバランサーサーバーは TsgcWebSocketHTTPServer からすべてのメソッドとプロパティを継承します。
ロードバランサーの設定
Load BalancerサーバーはTsgcWebSocketHTTPServerの子孫なので、その構成方法を知るにはTsgcWebSocketHTTPServerのドキュメントをお読みください。
さらに、ロードバランサーには LoadBalancer プロパティがあり、以下のプロパティが含まれています。
- LoadBalancing:接続の分配方法を設定します。
- lbRandom:(デフォルト)新しいクライアントが接続をリクエストするたびに、ランダムなサーバーを返します。
- lbConnections: 新しいクライアントが接続をリクエストするたびに、接続クライアントが最も少ないサーバーを返します。
- プロトコル:有効なプロトコルを設定します。
- WebSocket: true の場合、WebSocket 接続はロードバランサーサーバーによって処理されます。
- HTTP: true の場合、HTTP 接続はロードバランサーサーバーによって処理されます。
バックアップサーバーの設定
バックアップサーバー(ロードバランサーの背後にあるサーバー)には、TsgcWebSocketServer、TsgcWebSocketHTTPServer、または Datasnap サーバーを使用できます。
これらのサーバーには LoadBalancer プロパティがあり、ロードバランサーサーバーとバックアップサーバー間の接続を設定できます。
- Enabled: バックアップサーバーとして使用する場合は true に設定します。
- Host: ロードバランサーが配置されているホスト。
- Port: LoadBalancerのリッスンポート。
- Guid: このサーバーを識別する一意のID。
- Bindings: 接続が転送される先のパブリックアドレスです。例: バックアップWebSocketサーバーがポート8000でリッスンし、IPアドレスが1.1.1.1の場合は、次のように使用します: ws://1.1.1.1:8000;
- AutoRegisterBindings: 有効にすると、LoadBalancerサーバーはバックアップサーバーのBindingsプロパティを使用してパブリックバインディングを設定します。
- AutoRestart: 秒単位で、ゼロより大きい場合、バックアップサーバーのロードバランサークライアントは内部watchdogを有効にし、x秒ごとに接続が生きているかどうかをチェックします。閉じている場合は、再接続を試みます。