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