スケーリングコンポーネント — sgcWebSockets | eSeGeCe

スケーリングコンポーネント

sgcWebSockets のデプロイを複数インスタンスで実行できます。ロードバランサーで接続を分散させたり、ブラウザをレガシー TCP サーバーに橋渡ししたり、Windows で最大同時接続数を実現するカーネルモードの HTTP.SYS アクセプターに切り替えたりできます。

スケーリング & 高パフォーマンス基盤コンポーネント

スケーリングの目的に合ったコンポーネントをお選びください。

マルチノードクラスタリング

WebSocket サーバーを複数のノードにスケールします。あるノードでの publish や Presence イベントは、ゼロインフラのメッシュまたは Redis バックプレーンを通じて、他のすべてのノードのサブスクライバーに届きます。

ロードバランサーサーバー

ランダムまたは最小接続数アルゴリズムを使用して、バックアップサーバーのプールに WebSocket および HTTP 接続を分散させます。バックアップサーバーはバインディングを自動登録します。

WebSocket プロキシサーバー

ブラウザの WebSocket クライアントを任意の TCP/IP バックエンドに橋渡しします。WebSocket をネイティブに話せないレガシーサービスへブラウザから仮想接続できます。

HTTP API サーバー(HTTP.SYS)

カーネルモードの Microsoft HTTP Server API をトランスポートとして使用します。WebSocket、HTTP/1.1、HTTP/2、SSL を内蔵し、同じ Windows ホスト上の IIS とポートを共有できます。

IOCP サーバー(Windows)

Indy の WebSocket サーバーを Windows I/O Completion Ports に切り替えます。接続ごとに 1 スレッドを割り当てる代わりに、小さなスレッドプールで数千もの同時接続を処理できます。

EPOLL サーバー(Linux)

Indy の WebSocket サーバーを Linux epoll に切り替えます。限られたスレッドプールで、Linux 上で数千もの同時接続にスケールできます。

高並列接続の本番環境向けに設計

各スケーリングコンポーネントは標準の sgcWebSockets サーバー・クライアントの隣にドロップインできます。

トポロジーを選択する

水平スケールアウトには、複数の TsgcWebSocketHTTPServer インスタンスを TsgcWebSocketLoadBalancerServer の背後に配置します。シングルマシン環境では TsgcWebSocketServer_HTTPAPI に切り替えてカーネルモードの I/O 完了ポートを活用し、IIS とポートを共有できます。ブラウザの WebSocket クライアントから TCP のみのバックエンドを公開するには TsgcWebSocketProxyServer を使用します。

  • クライアント設定を変更せずにバックアップサーバーの追加・削除が可能
  • 自動再起動ウォッチドッグがバックアップサーバーをロードバランサーに再接続
  • HTTP.SYS は WebSocket(Win 8 以降)、HTTP/1.1、HTTP/2(Win 2016 以降)をサポート
  • プロキシサーバーがブラウザから任意の TCP バックエンドへ橋渡し
LB SRV 1 SRV 2 SRV 3

sgcWebSockets のデプロイをスケールさせましょう

体験版をダウンロードして、複数インスタンス・複数プラットフォームで sgcWebSockets を実行してください。