假设我试图在节点js app中扩展我的应用程序超过200k +套接字连接,我该如何解决这个问题。我一直在做很多研究,并在考虑: - 应用层 -socket.io图层 负载平衡器
这是在我读完socket.io基准测试article后,但后来偶然发现了socketcluster!我也考虑过使用socket.io + redis并增加heroku dyno,不知道这会增加多少socket.io可伸缩性。
我现在的问题是,群集js是否已经在所有可用核心上运行带有socket.io的节点js服务器的多个实例?如果是这样,为什么你需要socketcluster?
谢谢!
答案 0 :(得分:0)
Socket.io需要粘性负载平衡,这会使您的应用更容易受到DoS攻击(使用粘性负载平衡,恶意用户可以针对特定工作人员并使其一次崩溃)。此外,当您必须处理公司代理后面的用户时,粘性负载平衡可能导致跨工作人员的流量分布不均。
与SocketCluster不同,Socket.io不支持pub / sub,因此很难在连接到不同工作人员/主机的用户之间进行通信。