多线程Node js和套接字IO



好的,所以多线程nodeJS从我一直在阅读的内容来看并不大问题。只需部署多个相同的应用程序,并使用nginx作为所有应用程序的反向代理和负载均衡器。

但实际上原生cluster模块也运行良好,我发现。

但是,如果我socket.ionodeJS应用程序怎么办?我已经对nodeJS + socket.IO尝试了相同的策略;但是,它显然不起作用,因为发出的每个套接字事件或多或少都是均匀分布的,并且除了建立连接的套接字之外的套接字将不知道请求来自何处。

所以我现在能想到的最好的方法是将nodeJS服务器和socket.IO服务器分开。水平扩展nodeJS服务器(多个相同的应用(,但只有一个socket.IO服务器。虽然我相信这对于我们的解决方案来说已经足够了,但我仍然需要关注未来。有没有人成功地水平扩展Socket.IO?所以多线程?

socket.io 网站上的指南使用 Redis 和一个名为 socket.io-redis 的包

https://socket.io/docs/using-multiple-nodes/

看起来就像连接的单个池,每个节点实例都连接到该池。

将套接字服务器放在单独的服务(微服务(上可能很好,缺点是需要管理两个实例之间的通信。

最新更新