【问题标题】:Production sailsjs app with no downtime with pm2使用 pm2 生产sailsjs 应用程序,无需停机
【发布时间】:2015-08-26 06:30:41
【问题描述】:

我有一个以 pm2 和两个实例在集群模式下运行的sailsjs 应用程序。想要这两个实例的主要原因之一是我可以重新启动/更新应用程序,而不必关闭整个应用程序。

但是,在一个实例pm2 restart 4 重新启动的过程中,如果我刷新它,该站点就会出现问题(这是技术术语)。我假设这是因为 grunt 正在做这件事,而 .tmp 文件夹在这两个实例中都被破坏了?

sailsjs 唯一真正的方法是让两个完整的实例在不同的端口上运行并使用 nginx 之类的东西作为负载均衡器,或者我是否缺少 PM2 允许分阶段重启而没有任何停机时间或资源中断的东西有空吗?

【问题讨论】:

    标签: sails.js pm2


    【解决方案1】:

    这里有几个问题。

    1. 您需要提供您的sails.js/node.js/pm2 版本 跑步。简而言之,将您的环境描述为 可能。

    2. 更完整地描述您的问题有助于人们写出更简洁明了的答案。

    3. node.js 集群模式可能会改变(从 v0.12.4 开始)并且仍然被认为是“不稳定的”:https://nodejs.org/api/cluster.html#cluster_cluster

    在以下线程中,“mikermcneil 于 2014 年 12 月 3 日发表评论”表示要使用 pm2 禁用 Grunt 进行生产:https://github.com/balderdashy/sails/pull/1716

    让我澄清一下,直到最近我才使用 pm2。除了 Grunt,它还存在套接字连接问题,而 nginx 处理得很好。相信我,追捕那个虫子并不好玩。这是该主题的链接:https://github.com/Unitech/PM2/issues/389

    作为替代解决方案,我选择将 nginx 与并行sails.js 应用程序一起使用,将 redis 用于套接字和会话。永远使用以保持应用程序运行并禁用 grunt。将 nginx 指向资产文件夹以快速提供静态文件,绕过sails.js 并将缓存添加到这些资产。

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-11
      • 2014-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多