node.js – PM2中的群集和叉模式差异

我已经搜索了很多,以找出这个问题,但我没有得到明确的解释。只有一个不同的东西,集群应用程序可以缩小和分叉应用程序不能吗?

PM2的公共网站解释集群模式可以做these feature,但没有人说关于Fork模式的优点(也许,它可以获得NODE_APP_INSTANCE变量)。

我觉得Cluster可能是Fork的一部分,因为Fork似乎被普遍使用。所以,我猜Fork意味着从PM2的角度来说只是’分叉的过程’,而群集意味着能够扩展的分叉进程。那么为什么要使用叉模式?

fork_mode和cluster_mode之间的主要区别是它下订单pm2使用child_process.fork api或cluster api。

这在内部意味着什么?

叉模式

以叉模式作为基本过程产卵。这允许更改exec_interpreter,以便您可以运行带有pm2的php或python服务器。是的,exec_interpreter是用于启动子进程的“命令”。默认情况下,pm2将使用节点,以便pm2启动server.js将执行以下操作:

require('child_process').spawn('node', ['server.js'])

这种模式非常有用,因为它有很多的可能性。例如,您可以在预先建立的端口上启动多个服务器,然后由HAProxy或Nginx进行负载平衡。

群集模式

集群只能与节点一起工作,因为它是exec_interpreter,因为它将访问nodejs集群模块(例如:isMaster,fork方法等)。这对于零配置过程管理非常好,因为该过程将在多个实例中自动分配。
例如pm2 start -i 4 server.js将启动4个server.js实例,让集群模块处理负载均衡。

http://stackoverflow.com/questions/34682035/cluster-and-fork-mode-difference-in-pm2

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:node.js – PM2中的群集和叉模式差异