微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PM2中的群集和分叉模式差异

如何解决PM2中的群集和分叉模式差异

fork_mode和之间的主要区别在于cluster_mode,它命令pm2使用child_process.fork api或集群 api。

这在内部意味着什么?

货叉模式

fork模式作为基本过程生成。这允许更改exec_interpreter,以便您可以使用pm2 运行PHPpython服务器。是的,exec_interpreter是用于启动子进程的“命令”。认情况下,pm2将使用,node因此pm2 start server.js将执行以下操作:

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

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

集群模式

cluster只一起工作node,因为它是exec_interpreter(:例如,因为它会进入到集群的NodeJS模块isMasterfork方法等)。这对于零配置流程管理非常有用,因为该流程将在多个实例中自动分叉。例如,pm2 start -i 4 server.js将启动4个实例,server.js并让集群模块处理负载平衡。

解决方法

我进行了很多搜索以找出这个问题,但是我没有得到明确的解释。集群应用程序可以扩展而分叉应用程序不能扩展只是一件事?

PM2的公共站点解释说集群模式可以实现这些功能,但是没有人说出Fork模式的优点(也许可以NODE_APP_INSTANCE变)。

我觉得Cluster可能是Fork的一部分,因为Fork似乎被广泛使用。因此,我猜想Fork从PM2的角度讲只是“分叉的过程”,而Cluster则是“能够扩展的分叉的过程”。然后,为什么要使用分叉模式?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。