【问题标题】:Horizontal scaling of node.js server instances on a single machine在单台机器上水平扩展 node.js 服务器实例
【发布时间】:2011-09-15 17:57:45
【问题描述】:

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

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

这是扩展运行 node.js 的 Web 服务器的最佳方式吗?如果是这样,是否有库可以简化主/从模式?如果没有,建议采用哪些模式或部署设置来最好地利用专用机器的全部资源?

(对于ServerFault,这是一个更好的问题吗?)

【问题讨论】:

    标签: deployment node.js scalability


    【解决方案1】:

    Multi-node 是一个提供主/从模式的库。

    如果服务器进程不需要能够相互通信,并且您没有使用Socket.IO,一个简单的选择是只启动一个进程/核心,绑定到本地端口,然后使用nginxHAProxy 之类的东西可以在它们之间进行负载平衡。

    【讨论】:

      【解决方案2】:

      如果你使用 express,我会使用 tj 的集群:http://learnboost.github.com/cluster/

      它提供基于 CPU 的“透明”负载平衡,这很好,因为您可以使用现有的 express 应用程序,而且它可以相对轻松地跨内核扩展。

      【讨论】:

        猜你喜欢
        • 2013-10-17
        • 1970-01-01
        • 1970-01-01
        • 2011-02-08
        • 2018-04-29
        • 2020-02-19
        • 2014-04-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多