【问题标题】:Elastic Beanstalk Node.Js needs PM2 or ForeverElastic Beanstalk Node.Js 需要 PM2 或 Forever
【发布时间】:2017-10-05 02:11:00
【问题描述】:

在我的本地节点服务器中,任何未捕获的异常都会失败,必须手动重新启动。所以 local 是使用 forever 或 pm2 运行的。 但是我的开发服务器是带有 Node.Js 环境的 AWS Elastic Beanstalk。虽然它会记录未捕获的异常并抛出它,但它永远不会终止。即使它终止,它也会自动启动。 那么是否需要 PM2 或 Forever 来让 node.js 在 AWS Elastic Beanstalk 环境中永远运行。

【问题讨论】:

  • Nodejs 进程完全由 Elastic beanstalk 管理,但您可以使用 .ebextensions/web.config 文件 Advanced Environment Customization 自定义您的实例
  • Elastic beanstalk 会永远保留 nodejs 吗?重启情况如何?
  • @Janier 以我的经验。当该过程结束时,它将立即重新启动。这会导致如果您在启动时出现错误,它将疯狂地消耗实例 CPU 积分,因为它只是在循环中重新启动 node.js 应用程序。此外,您应该有一个 /health 路由,并且当 EB 检测到运行状况失败时,它会替换/重新启动您的实例。这可以解决您在实例上崩溃/冻结整个操作系统时的情况,例如当您用完系统内存时。

标签: node.js amazon-web-services pm2 forever amazon-elastic-beanstalk


【解决方案1】:

我的 2 美分:

PM2 相对于 EBS 有很多优势:

  1. 使用 PM2,您可以控制和管理具有不同平台(JS、Ruby 等)的许多应用程序(进程)。 在 EBS 中,您一次只能将一个应用程序部署到 EBS。

  2. PM2 让您可以直接控制所有正在运行的进程,您可以在其中重新加载/重新启动/停止一个进程并保持其他进程不变。

EBS 只能为您解决少数问题,例如在崩溃时重新启动或限制内存泄漏。但是 PM2 让您可以控制许多其他问题(优雅的重新加载、0 延迟重新加载……) 现在,我对 EBS 的全部功能可能有点错误,它可能提供更多功能

【讨论】:

    【解决方案2】:

    这里有一个关于如何在 EBS 中使用 PM2 的教程:

    http://pm2.keymetrics.io/docs/tutorials/use-pm2-with-aws-elastic-beanstalk/

    希望对你有帮助!

    【讨论】:

    • 我的问题是有必要在 EB 中使用 PM2,因为当我的应用程序因未捕获的异常而失败时,它会由 elasticbeanstalk 自动启动..
    猜你喜欢
    • 2014-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-19
    • 2019-09-11
    • 2017-06-07
    • 2016-03-11
    • 2016-02-17
    相关资源
    最近更新 更多