sgcWebSockets 2024.3.0 バージョンで TsgcWebSocketLoadBalancerServer が強化されました。これまで WebSocket のみをサポートしていましたが、HTTP プロトコルもサポートされるようになり、HTTP リクエストを細かく制御するための新しいイベントも追加されました。ロードバランサーサーバーは TsgcWebSocketHTTPServer を継承するようになり、そのすべてのメソッドとプロパティを引き継いでいます。
ロードバランサーサーバーの設定
ロードバランサーサーバーは TsgcWebSocketHTTPServer を継承しています。設定方法については TsgcWebSocketHTTPServer のドキュメントをご参照ください。
また、ロードバランサーには LoadBalancer プロパティがあり、次のプロパティが含まれます。
- LoadBalancing: 接続の振り分け方法を設定します
- lbRandom:(デフォルト)新しいクライアントが接続を要求するたびにランダムなサーバーを返します。
- lbConnections: 新しいクライアントが接続を要求するたびに、接続中のクライアント数が最も少ないサーバーを返します。
- Protocols: 有効にするプロトコルを設定します
- WebSocket: true の場合、WebSocket 接続はロードバランサーサーバーで処理されます。
- HTTP: true の場合、HTTP 接続はロードバランサーサーバーで処理されます。
バックアップサーバーの設定
バックアップサーバー(ロードバランサーの背後にあるサーバー)は TsgcWebSocketServer、TsgcWebSocketHTTPServer、または DataSnap Server のいずれかを使用できます。
これらのサーバーには LoadBalancer プロパティがあり、ロードバランサーサーバーとバックアップサーバー間の接続を設定できます。
- Enabled: バックアップサーバーとして使用する場合は true に設定します。
- Host: ロードバランサーのホストアドレス。
- Port: ロードバランサーのリッスンポート。
- Guid: このサーバーを識別するための一意の ID。
- Bindings: 接続が転送される公開アドレス。例: バックアップ WebSocket サーバーがポート 8000、IP アドレス 1.1.1.1 でリッスンしている場合は ws://1.1.1.1:8000 と指定します。
- AutoRegisterBindings: 有効にすると、ロードバランサーサーバーはバックアップサーバーの Bindings プロパティを使って公開バインディングを設定します。
- AutoRestart: 秒単位。0 より大きい値を設定すると、バックアップサーバーのロードバランサークライアントが内部ウォッチドッグを有効にし、x 秒ごとに接続の生存を確認します。接続が切断されていた場合は再接続を試みます。
サンプル
以下に、HTTP リクエストを 3 つのサーバーにランダムに転送するロードバランサーサーバーの設定方法を示す Windows 用コンパイル済みデモのダウンロードリンクを示します。
