1

次のような単純なノード js Web ソケット サーバーがあります。

var ws = require("nodejs-websocket")
var connectionCount = 0;
console.info("Node websocket started @ 8001");

var server = ws.createServer(function (conn) {;
    console.log("New connection", ++connectionCount);
    conn.on("close", function (code, reason) {
        console.log("Connection closed")
    });
}).listen(8001)

このサーバーは 65k の接続を使用します (1 つのポートが最大 65k の接続を使用するため)。10 万を超える接続を処理できるようにサーバーを拡張するにはどうすればよいですか?

私は最近、異なるポートでそのようなサーバーを 3 つ開き、nginx を使用して負荷分散を試みましたが、nginx サーバーも 65k 接続しか使用できないため、無駄でした。nginxの設定はこちら

upstream localhost {
    server localhost:8001;
    server localhost:8002;
    server localhost:8003;
}


server {
    proxy_read_timeout 3600s;
    listen 8000;
    location / {
            proxy_pass http://localhost;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
    }
}

ポート 8000 は 65k 接続しか使用できません。

この種の状況は、リアルタイムでどのように処理されますか。私はここではアマチュアであり、サーバーをスケーリングするための適切なポインターが必要です。ソリューションは、nginx を使用する必要はありません。それは何でもかまいません。このような問題を処理する方法を知りたいだけです。詳細な回答をいただければ幸いです。ありがとう。

4

1 に答える 1