我进行了很多搜索以找出这个问题,但是我没有得到明确的解释。集群应用程序可以扩展而分叉应用程序不能扩展只是一件事?
PM2的公共站点解释说集群模式可以实现这些功能,但是没有人说出Fork模式的优点(也许可以NODE_APP_INSTANCE
变)。
我觉得Cluster可能是Fork的一部分,因为Fork似乎被广泛使用。因此,我猜想Fork从PM2的角度讲只是“分叉的过程”,而Cluster则是“能够扩展的分叉的过程”。然后,为什么要使用分叉模式?
fork_mode
和之间的主要区别在于cluster_mode
,它命令pm2使用child_process.fork
api或集群 api。
将fork
模式作为基本过程生成。这允许更改exec_interpreter
,以便您可以使用pm2
运行php
或python
服务器。是的,exec_interpreter
是用于启动子进程的“命令”。默认情况下,pm2将使用,node
因此pm2 start server.js
将执行以下操作:
require('child_process').spawn('node', ['server.js'])
此模式非常有用,因为它有很多可能性。例如,您可以在预先建立的端口上启动多个服务器,然后由HAProxy或Nginx对其进行负载平衡。
该cluster
只一起工作node
,因为它是exec_interpreter
(:例如,因为它会进入到集群的NodeJS模块isMaster
,fork
方法等)。这对于零配置流程管理非常有用,因为该流程将在多个实例中自动分叉。例如,pm2 start -i 4 server.js
将启动4个实例,server.js
并让集群模块处理负载平衡。
我正在使用Node.js、Express和pm2构建一个用于流程管理的无状态Web应用程序。在生产环境中,我为服务器CPU的每个核心运行一个应用程序实例(感谢pm2集群模式)。 最近我开始阅读Greenlock-Express(用于自动获取证书),它还有一个“cluster”属性,如果我理解正确的话,它基本上与pm2集群模式做的事情相同。 如果我在集群模式下同时运行Greenlock-Expres
TL;DR:在Spark独立集群中,客户端和集群部署模式之间有什么区别?如何设置应用程序运行的模式? 我们有一个带有三台机器的Spark独立集群,它们都带有Spark 1.6.1: 主机,也是使用运行应用程序的地方 2台相同的工作机 2)如何使用选择应用程序将运行在哪个上?
我有两个节点的完全分布式Hadoop和Hbase实例。HDFS在主机和从机上工作良好。但是HBase shell只在节点名格式化之后工作一次,并且集群是新的,之后我得到错误:error:org.apache.hadoop.HBase.PleaseHoldException:Master is initializing HBase 我也不能通过hbase shell从slave连接我总是得到错误连接
集群策略插件化 分布式集群策略采用插件的方式实现,通过SPI的形式发布,通过配置文件激活。 zookeeper分布式策略
我是Docker Swarm的新手。我试图用compose文件在Docker swarm上部署redis集群。我希望redis集群使用端口6380,所以我配置了端口,并让它在compose文件中挂载redis配置文件。 但是当我运行时,我得到了一个错误的声明,“对不起,集群配置文件redis-node.conf已经被不同的Redis集群节点使用了。请确保不同的节点使用不同的集群配置文件。” 这是我
null