deployment - node.js 服务器实例在单机上的横向扩展

标签 deployment node.js scalability

在 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/

相关文章:

python - 跨服务器同步文件名

Tomcat部署策略

node.js - 如何将 Dialogflow 输入移交给 Interactive Canvas

c++ - 理解C++应用程序负载均衡

node.js - 跨多个核心/服务器扩展 Node.JS

java - Tomcat 具有同一应用程序的多个实例

sql-server - 更改受 RLS (SSDT) 保护的 SQL 表

javascript - AWS IoT - 如何指定证书路径(Swagger + NodeJS)

node.js - Geddy - 保存任何文件后 Node 未重新启动

php - 如何在 APC 缓存中存储 PHP session ?