在节点js app中使用群集js时,socketcluster是多余的吗?

时间:2015-09-16 05:00:34

标签: node.js sockets heroku socket.io

假设我试图在节点js app中扩展我的应用程序超过200k +套接字连接,我该如何解决这个问题。我一直在做很多研究,并在考虑: - 应用层 -socket.io图层 负载平衡器

这是在我读完socket.io基准测试article后,但后来偶然发现了socketcluster!我也考虑过使用socket.io + redis并增加heroku dyno,不知道这会增加多少socket.io可伸缩性。

我现在的问题是,群集js是否已经在所有可用核心上运行带有socket.io的节点js服务器的多个实例?如果是这样,为什么你需要socketcluster?

谢谢!

1 个答案:

答案 0 :(得分:0)

Socket.io需要粘性负载平衡,这会使您的应用更容易受到DoS攻击(使用粘性负载平衡,恶意用户可以针对特定工作人员并使其一次崩溃)。此外,当您必须处理公司代理后面的用户时,粘性负载平衡可能导致跨工作人员的流量分布不均。

与SocketCluster不同,Socket.io不支持pub / sub,因此很难在连接到不同工作人员/主机的用户之间进行通信。