当前位置: 首页 > 知识库问答 >
问题:

我是否应该在使用pm2集群模式的同时使用Node.js Greenlock-Express集群模式?

贺宏富
2023-03-14

我正在使用Node.js、Express和pm2构建一个用于流程管理的无状态Web应用程序。在生产环境中,我为服务器CPU的每个核心运行一个应用程序实例(感谢pm2集群模式)。

最近我开始阅读Greenlock-Express(用于自动获取证书),它还有一个“cluster”属性,如果我理解正确的话,它基本上与pm2集群模式做的事情相同。

如果我在集群模式下同时运行Greenlock-Express和pm2,会有任何冲突或可能的问题吗?如果是这样,在Windows环境中使用Node.js自动获得SSL证书的最佳替代方案是什么?如果它们不是,在集群模式下使用它们是最佳的吗?

共有1个答案

子车安和
2023-03-14

PM2只实现部分集群支持。

参见https://git.rootprojects.org/root/greenlock-express.js/issues/26

我建议只使用Servicem(跨平台)或原始SystemD(linux)或Docker(云部署)。

如果您要使用PM2,您可以像使用Ruby、Python等一样使用Greenlock Express--作为一个单独的可执行文件,而不是作为一个“内置”应用程序。

Greenlock Express中已经实现了节点应用程序的PM2s默认优化,并且由于PM2只有部分集群支持,因此没有方法告诉PM2将控制传递给Greenlock Express,也没有方法让PM2接受Greenlock Express的控制。

另外:如果您实际上有多个CPU内核,请只使用cluster模式,否则将导致线程抖动并减慢进程。

 类似资料:
  • 根据这份文件: 然而,与Redis(群集模式禁用)群集不同,当前,一旦创建了Redis(群集模式启用)群集,其结构就不能以任何方式改变;不能添加或删除节点或碎片。如果需要添加或删除节点,或更改节点类型,则必须重新创建集群。(来源) 然而,本文档似乎描述了向集群添加碎片的过程: 通过使用Amazon ElastiCache for Redis 3.2.10版本的在线重新划分和分片重新平衡,您可以动态

  • 问题内容: 我进行了很多搜索以找出这个问题,但是我没有得到明确的解释。集群应用程序可以扩展而分叉应用程序不能扩展只是一件事? PM2的公共站点解释说集群模式可以实现这些功能,但是没有人说出Fork模式的优点(也许可以变)。 我觉得Cluster可能是Fork的一部分,因为Fork似乎被广泛使用。因此,我猜想Fork从PM2的角度讲只是“分叉的过程”,而Cluster则是“能够扩展的分叉的过程”。然

  • 我尝试使用启动命令“PM2 runtime start ecosystem.config.JS”或“PM2--no daemon start ecosystem.config.JS”在Azure应用程序服务(Linux)的下一个JS应用程序上通过PM2设置集群。两个命令都失败。当我使用pm2运行时,传递给NodeJS脚本的当前工作目录变成:“wwwroot/econosystem.config.j

  • 我正在使用PM2集群模块为每个CPU内核生成Node.js应用程序的实例。在sime的时候,对于CPU繁重的操作(如加密),我使用Piscina(一个用于Node.js的工作池库模块,它基于Node.js工作线程模块)。

  • 我是Docker Swarm的新手。我试图用compose文件在Docker swarm上部署redis集群。我希望redis集群使用端口6380,所以我配置了端口,并让它在compose文件中挂载redis配置文件。 但是当我运行时,我得到了一个错误的声明,“对不起,集群配置文件redis-node.conf已经被不同的Redis集群节点使用了。请确保不同的节点使用不同的集群配置文件。” 这是我

  • 问题内容: 我正在尝试在Wildfly 8.2上创建一个简单的集群。我已经配置了2个Wildfly实例,它们以独立的群集配置运行。我的应用程序已部署到这两个应用程序,并且我可以毫无问题地访问它。 我的集群EJB如下所示: …并且我编写了一个非常简单的RESTful服务,让我可以通过浏览器调用这些方法… 我可以从单个Wildfly实例中调用和方法,并获得预期值。但是,如果我尝试从一个实例调用poke