Node.js 集群 vs 多个 Node.js 实例

8

我想知道下面两者之间的区别:

 cluster.setupMaster({exec:'app.js'});
 for(let i=0;i<3;i++) {cluster.fork();}

输入命令三次:

 node app.js

似乎对于内部库net,只有第一种方式中有一些轮询的负载均衡机制可用,而第二种方式只是分离的节点进程,它们之间没有协同作用——除非我们添加进程间通信代码。除此之外,我想知道只使用第一种方式还能获得什么其他收益?
-----------------------------更新------------------------------
列出建模“集群”与普通多进程时应注意的事项很好,但最好描述一下隐含在“集群”库中的IPC通道。

我本以为会有一个“差异”,但实验表明不存在:require.cache 是进程全局的,且不在集群各进程之间共享。 - pu.guan
1个回答

4
主要区别在于外部应用程序可以像访问一个应用程序一样访问这三个工作程序。因此,如果您正在运行Web应用程序,您可以将这三个工作程序通过同一HTTP端口公开,例如。如果您尝试运行三次节点应用程序,您将不得不为每个分配不同的端口,并在其他地方进行负载平衡。

如果您强制使用REUSEPORT,并将它们设置在同一个端口上,它们不是相同的吗? - ollie299792458

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接