在 node.js 上运行 Web 服务器是一件简单的事情(从其出色的示例和文档可以看出),但我想知道如何才能充分利用专用服务器的 CPU 资源?
由于 node.js 是单线程的,因此利用多处理器的唯一方法是通过多进程。当然,只有一个进程可以绑定(bind)到一个端口,所以似乎必须有一个主/工作模式,其中主进程 fork 子进程,绑定(bind)到传入端口,并将传入连接(和实际处理工作)委托(delegate)给子进程. (也许是通过饥饿消费者模式?)
这是扩展运行 node.js 的 Web 服务器的最佳方式吗?如果是这样,是否有库来简化 master/worker 模式?如果不是,建议使用哪些模式或部署设置以最好地利用专用机器的全部资源?
(这对 ServerFault 是一个更好的问题吗?)
最佳答案
Multi-node是一个提供 master/worker 模式的库。
如果服务器进程不需要相互通信,并且您没有使用 Socket.IO ,一个简单的选择是只启动一个进程/核心,绑定(bind)到本地端口,然后使用类似 nginx 的东西或 HAProxy在它们之间进行负载平衡。
关于deployment - node.js 服务器实例在单机上的横向扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6361776/