代码之家  ›  专栏  ›  技术社区  ›  user3216514

WebSocket和可扩展性

  •  37
  • user3216514  · 技术社区  · 8 年前

    我是WebSocket的初学者。 我的应用程序中需要服务器在发生变化时通知客户端,并且我计划使用WebSocket。

    1. 单服务器实例和单客户端==>将创建多少WebSocket以及到WebSocket的连接数?

    2. 单服务器实例和10个客户端==>将创建多少WebSocket以及到WebSocket的连接数?

    3. 单服务器实例和1000个客户端==>将创建多少WebSocket以及到WebSocket的连接数?

    当您的应用程序有1000个用户群时,如何使用WebSocket进行扩展?

    非常感谢您的反馈。

    1 回复  |  直到 3 年前
        1
  •  64
  •   jfriend00    8 年前

    1) 单服务器实例和单客户端==>将创建多少WebSocket以及到WebSocket的连接数?

    如果您的客户端创建了一个webSocket连接,那么客户端和服务器上将分别有一个webSocket连接。是客户端创建到服务器的webSocket连接,因此是客户端决定将有多少连接。如果它创建了3,那么将有3。如果它创建1,则将有1。通常,客户端只会创建1。

    2) 单服务器实例和10个客户端==>将创建多少WebSocket以及到WebSocket的连接数?

    如上所述,这取决于客户做什么。如果每个客户端创建1个webSocket连接,并且有10个客户端连接到服务器,那么服务器将看到总共10个webSocket连接。

    与第2点相同。

    当你的应用程序有1000个用户群时,你如何用WebCokets进行扩展?

    适当配置的单个服务器可以处理几十万个同时进行的webSocket连接,这些连接大多处于空闲状态,因为空闲的webSocket几乎不使用服务器CPU。对于更大规模的部署,可以对服务器进行集群(运行多个服务器进程),并使用粘性负载平衡来分散负载。

    如果你在追求大规模的webSocket或socket,谷歌上还有很多类似的文章值得一读。io部署:

    The Road to 2 Million Websocket Connections in Phoenix

    600k concurrent websocket connections on AWS using Node.js

    10 million concurrent webSockets

    最终,每个正确配置的服务器可实现的规模可能与每个连接有多少活动以及需要多少计算来提供这些活动有关。