在单个计算机上对node.js服务器实例进行水平扩展

mae*_*ics 7 deployment scalability node.js

在node.js上运行Web服务器是一件很简单的事情(如其优秀的示例和文档所示),但我想知道如何充分利用专用服务器的CPU资源?

由于node.js是单线程的,因此利用多个处理器的唯一方法是通过多个进程.当然,只有一个进程可以绑定到一个端口,因此似乎必须有一个主/工作模式,其中主分支子进程,绑定到传入端口,并将传入连接(和实际处理工作)委托给子进程.(也许是通过饥饿的消费模式?)

这是扩展运行node.js的Web服务器的最佳方法吗?如果是这样,是否有库来简化主/工程模式?如果没有,建议使用哪种模式或部署设置来最好地使用专用机器的整个资源?

(这对ServerFault来说是一个更好的问题吗?)

Jam*_*col 6

多节点是提供主/工作模式的库.

如果服务器进程不需要能够相互通信,并且您没有使用Socket.IO,一个简单的选择就是启动一个进程/核心,绑定到本地端口,并使用类似nginx的东西或者HAProxy来加载它们之间的平衡.