将双向实时连接扩展到数十万的最佳方法是什么?



我想构建一个应用程序,允许与许多客户端进行实时轮询(想想总部琐事(。 以高速和低成本实现这一目标的最佳技术/方法是什么?

我以前曾与 socket.io 合作过,但我认为这对于我试图连接的大量客户来说是不够的。

我的服务器在节点上运行.js

这是一个非常广泛的问题,实际上只能通过非常广泛的意见和建议来解决。

基本上,它将归结为:

  • 使用节点的内置集群来利用每台服务器上的所有 CPU,
  • 可能还会在多个服务器之间使用某种负载平衡。

Socket.io 本身与连接数量无关。您可以通过基于本机 http/https 模块编写自己的 websocket 库来减少 CPU 周期或内存使用量,但可能会牺牲稳定性、安全性和/或功能。无论您使用什么,只要有足够的流量,您最终都会在某个地方遇到瓶颈。它可能是网络带宽、CPU 使用率、内存等。

当你遇到瓶颈时,你只需要有一个增加瓶颈的计划。您可以通过升级服务器以拥有更多 CPU、内存或带宽来实现此目的,也可以进行负载平衡设置并扩展服务器数量。

最新更新