Websockets和可伸缩性

时间:2017-11-13 15:37:38

标签: websocket scalability

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

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

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

3)单个服务器实例和1000个客户端==>将创建多少个websockets以及与websockets的连接数量?

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

非常感谢您的反馈。

1 个答案:

答案 0 :(得分:21)

  

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

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

  

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

如上所述,它取决于客户端的功能。如果每个客户端创建1个webSocket连接并且有10个客户端连接到服务器,则服务器将看到总共10个webSocket连接。

  

3)单个服务器实例和1000个客户端==>将创建多少个websockets以及与websockets的连接数量?

与第2点相同。

  

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

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

如果您正在进行大规模的webSocket或socket.io部署,还有很多其他类似Google的文章值得一读:

The Road to 2 Million Websocket Connections in Phoenix

600k concurrent websocket connections on AWS using Node.js

10 million concurrent webSockets

最终,每个正确配置的服务器可实现的规模可能更多地与每个连接的活动量有关,以及需要多少计算才能实现。