好的,所以多线程nodeJS从我一直在阅读的内容来看并不大问题。只需部署多个相同的应用程序,并使用nginx
作为所有应用程序的反向代理和负载均衡器。
但实际上原生cluster
模块也运行良好,我发现。
但是,如果我socket.io
了nodeJS
应用程序怎么办?我已经对nodeJS + socket.IO
尝试了相同的策略;但是,它显然不起作用,因为发出的每个套接字事件或多或少都是均匀分布的,并且除了建立连接的套接字之外的套接字将不知道请求来自何处。
所以我现在能想到的最好的方法是将nodeJS
服务器和socket.IO
服务器分开。水平扩展nodeJS
服务器(多个相同的应用(,但只有一个socket.IO
服务器。虽然我相信这对于我们的解决方案来说已经足够了,但我仍然需要关注未来。有没有人成功地水平扩展Socket.IO
?所以多线程?
socket.io 网站上的指南使用 Redis 和一个名为 socket.io-redis
的包
https://socket.io/docs/using-multiple-nodes/
看起来就像连接的单个池,每个节点实例都连接到该池。
将套接字服务器放在单独的服务(微服务(上可能很好,缺点是需要管理两个实例之间的通信。