gpt4 book ai didi

node.js - PM2中Cluster和Fork模式的区别

转载 作者:IT老高 更新时间:2023-10-28 21:50:00 26 4
gpt4 key购买 nike

我已经搜索了很多来弄清楚这个问题,但我没有得到明确的解释。集群应用可以横向扩展和 fork 应用不能横向扩展只有一件事吗?

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

我觉得 Cluster 可能是 Fork 的一部分,因为 Fork 似乎被普遍使用。所以,我猜 Fork 只是从 PM2 的角度来看的“ fork 进程”,而 Cluster 意味着“能够横向扩展的 fork 进程”。那么,为什么要使用 Fork 模式呢?

最佳答案

fork_modecluster_mode 的主要区别在于它命令 pm2 使用 child_process.fork api 或 cluster api。

这在内部意味着什么?

fork 模式

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 集群模块(例如:isMaster fork 方法等)。这对于零配置流程管理非常有用,因为该流程将在多个实例中自动 fork 。例如 pm2 start -i 4 server.js 将启动 4 个 server.js 实例并让集群模块处理负载平衡。

关于node.js - PM2中Cluster和Fork模式的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34682035/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com