Webソケットの負荷分散方法について質問があります。
Webソケットをサポートするサーバーがあります。ブラウザは私のサイトに接続し、それぞれがへのWebソケットを開きますwww.mydomain.com
。このようにして、私のソーシャルネットワークアプリはクライアントにメッセージをプッシュできます。
従来は、HTTPリクエストのみを使用して、2つのWebサーバーの前に2台目のサーバーとロードバランサーを追加することでスケールアップしていました。
Webソケットの場合、接続はロードバランサーではなく、Webサーバーに直接接続する必要があります。これは、マシンに64kの開いているポートという物理的な制限があり、クライアントがロードバランサーに接続している場合、サポートできないためです。 64k以上の同時ユーザー。
どうやって私は-
ページが読み込まれたときに、クライアントを(ロードバランサではなく)Webサーバーに直接接続しますか?ページが最初に要求されるたびに、ノードからJavaScriptをロードするだけで、ロードバランサー(または何でも)がスクリプトのURLをランダムに変更しますか?
リップルスタートを処理しますか?ブラウザは、Webサーバーがシャットダウンすると接続が閉じられたことを認識します。JavaScriptコードを記述して接続を再度開こうとすることができますが、ノードはしばらくの間なくなります。したがって、使用する次のノードのアドレスを照会するには、ロードバランサーに戻る必要があると思いますか?
ロードバランサーが最初のリクエストでリダイレクトを送信するので、ブラウザーが最初にリクエスト
www.mydomain.com
してにリダイレクトされるのではないかと思いましたwww34.mydomain.com
。ノードがダウンするまで、それはかなりうまくいきます-そして、Facebookのようなサイトはそれをしません。どうやってやっているの?