2017-05-03 39 views
0

我一直在为我的服务器使用forverjs,但由于某种原因服务器停止并且服务器没有再次重新启动。 foreverjs可靠吗?nodejs - 如何确保我的应用程序始终可靠

我应该使用任何其他库吗?

发现有许多像pm2,nodemon,upstart,systemd,nginx的库。哪一个应该确保我的应用程序始终运行。这些工具也可以处理大量的请求吗?

+0

我喜欢pm2,但我也建议[监控](https://mmonit.com/monit/)进行监控(电子邮件停止服务,但我离开节点进程重新启动到pm2,monit也很适合所有情况“未节点“)。除此之外,我发现它是让你的代码记录适当的错误,所以你可以防止重复同样的事情。在不知道错误的情况下,您可以坐在那里并抓住你的头。 “我当然希望这不会再发生!” – ippi

回答

0

nodemon是一个不错的选择,你可以使用的永远nodemon使用相结合,

forever start -c nodemon app.js 
在我的经验永远

而且是非常可靠的,尽量

forever logs app.js 

,看看究竟是什么引起的错误

2

您的问题中有多个问题需要分析。

foreverjs可靠吗?

forever是一个非常流行的软件包。 As seen on GitHub,它有75个贡献者和636个提交。这个问题主要是基于意见的,但9/10(也许是10/10)经验丰富的开发人员会说这是可靠的因为它的目的(我在下面展开)。

我应该使用任何其他库吗?

可靠性是通过坚固的软件设计实现的,而不仅仅是您选择的软件包。多年来,我一直使用foreverpm2生产流程,而且没有任何问题。它们包括可靠性的强大功能,如试图在崩溃时重新启动应用程序。软件包不应该修复代码中的终端错误。

发现有很多像lib2,nodemon,upstart,systemd,nginx的库。 哪一个应该确保我的应用程序始终运行。

这可以通过阅读他们的GitHub描述找到。我使用nodemon来快速测试代码。例如,我启动了nodemon进程,它开始了我的Node.js进程。当我编辑我的代码并按下保存时,Node.js进程将自动停止并使用新代码重新启动。 nodemon不应该单独用于长时间运行的生产服务器,因为它在退出shell时会停止。 pm2forever是有效的库,如有必要,您可以调查upstart,systemdnginx

关于@卡拉娜德梅尔的回答,我认为在我上面的解释中使用forever来运行nodemon与使用forever一样。

如何确保我的应用程序是可靠所有的时间

对于整体回答你的问题,你应该写测试,以确保你的代码是可靠的。如果你已经编写了有效的单元和集成测试,选择一个包来运行这个过程将是微不足道的(与可靠性无关),因为你不应该期望它会崩溃。

0

pm2在这些情况下是很好的选择,我个人在我所有的node.js服务器中使用pm2,它提供了许多比其他更重要的功能。
其中一个最好的事情可以很容易地与用于分析服务器的keymetrics/newrelic集成。
另外pm2会给你cpu /内存使用量,你甚至可以配置重启限制和间隔。

相关问题