使用 node.js 为 comet 提供 250k 个连接

使用 node.js 为 comet 提供 250k 个连接

如何实现 node.js以便能够像 comet 服务器一样处理 250k 个连接(客户端我们使用 socket.io)?

使用 nginx 作为代理/负载均衡器是否是正确的解决方案?或者 HA-Proxy 是否是更好的方法?有没有人有 100k+ 连接的实际经验,可以分享他的设置吗?这样的设置是否正确(每台服务器四核 CPU -> 每台服务器启动 4 个 node.js 实例?):

  nginx (as proxy / load balancing server)
        /               |          \
       /                |           \
      /                 |            \
     /                  |             \
node server #1  node server #2  node server #3
4 instances     4 instances     4 instances

答案1

vanilla nginx 不支持 HTTP/1.1 keepalive 到上游(后端)服务器,这会破坏 socket.io :( 如果你愿意自己编译它,你可能会更幸运 -->http://www.letseehere.com/reverse-proxy-web-sockets

尽管在那个规模下,我想知道跳过 Web 服务器层、直接路由 TCP 连接是否会更顺畅......

相关内容