集群与PM2叉模式的区别
我搜索了很多搞清楚这个问题,但我没有得到明确的解释。是否只有一个群集的应用程序可以向外扩展和分叉的应用程序无法区别嘛?
PM2的公共网站上介绍集群模式可以做these feature但没有人说,大约叉模式(也许,它可以得到NODE_APP_INSTANCE
变量)的利弊。
我觉得像群集,因为叉好像一般的使用可能是叉的一部分。所以,我想叉从PM2的点意味着只是“派生进程”和集群的意思是“分叉过程,是能够进行扩展”。那么,我为什么要使用叉子模式?
回答如下:fork_mode
和cluster_mode
之间的主要区别在于,它的订单PM2为使用的child_process.fork API或cluster API。
这是什么手段在内部?
Fork mode
就拿fork
模式作为基本过程产卵。这允许改变exec_interpreter
,这样就可以运行php
或PM2一个python
服务器。是的,exec_interpreter
是用于启动子进程的“命令”。默认情况下,PM2将使用node
使pm2 start server.js
会做这样的事情:
require('child_process').spawn('node', ['server.js'])
这种模式是非常有用的,因为它使很多的可能性。例如,你可以在预先设定的端口,然后将通过HAProxy的或Nginx的进行负载平衡启动多个服务器。
Cluster mode
该cluster
将只与node
工作,因为它是exec_interpreter
,因为它会进入到集群的NodeJS模块(例如:isMaster
,fork
方法等)。这是伟大的零配置过程管理,因为程序会自动在多个实例来分叉。例如pm2 start -i 4 server.js
将推出server.js
的4个实例,并让群集模块手柄负载平衡。
集群与PM2叉模式的区别
我搜索了很多搞清楚这个问题,但我没有得到明确的解释。是否只有一个群集的应用程序可以向外扩展和分叉的应用程序无法区别嘛?
PM2的公共网站上介绍集群模式可以做these feature但没有人说,大约叉模式(也许,它可以得到NODE_APP_INSTANCE
变量)的利弊。
我觉得像群集,因为叉好像一般的使用可能是叉的一部分。所以,我想叉从PM2的点意味着只是“派生进程”和集群的意思是“分叉过程,是能够进行扩展”。那么,我为什么要使用叉子模式?
回答如下:fork_mode
和cluster_mode
之间的主要区别在于,它的订单PM2为使用的child_process.fork API或cluster API。
这是什么手段在内部?
Fork mode
就拿fork
模式作为基本过程产卵。这允许改变exec_interpreter
,这样就可以运行php
或PM2一个python
服务器。是的,exec_interpreter
是用于启动子进程的“命令”。默认情况下,PM2将使用node
使pm2 start server.js
会做这样的事情:
require('child_process').spawn('node', ['server.js'])
这种模式是非常有用的,因为它使很多的可能性。例如,你可以在预先设定的端口,然后将通过HAProxy的或Nginx的进行负载平衡启动多个服务器。
Cluster mode
该cluster
将只与node
工作,因为它是exec_interpreter
,因为它会进入到集群的NodeJS模块(例如:isMaster
,fork
方法等)。这是伟大的零配置过程管理,因为程序会自动在多个实例来分叉。例如pm2 start -i 4 server.js
将推出server.js
的4个实例,并让群集模块手柄负载平衡。