我一直在为我的服务器使用forverjs但由于某种原因服务器停止并且服务器没有再次重启。永远可靠吗?
我应该使用任何其他库吗?
发现有许多libs,如pm2,nodemon,upstart,systemd,nginx。哪一个应该确保我的应用程序一直在运行。这些工具也能处理大量的请求吗?
答案 0 :(得分:2)
您的问题中有多个问题需要分析。
永远可靠吗?
forever
是一个非常受欢迎的软件包。 As seen on GitHub,它有75个贡献者和636个提交。这个问题主要是基于意见的,但9/10(可能是10/10)经验丰富的开发人员会说它的可靠性是为了它的目的(我在下面展开)。
我应该使用任何其他库吗?
通过坚固的软件设计实现可靠性,而不仅仅是您选择的软件包。我已经使用forever
和pm2
生产流程多年来没有任何问题。它们包含强大的可靠性功能,例如在崩溃时尝试重新启动应用程序。软件包不应该修复代码中的终端错误。
发现有许多libs,如pm2,nodemon,upstart,systemd,nginx。 哪一个应该确保我的应用程序一直在运行。
这可以通过阅读他们的GitHub描述找到。我使用nodemon
来快速测试代码。例如,我启动nodemon
进程并开始我的Node.js
进程。当我编辑代码并按保存时,Node.js
进程会自动停止并使用新代码重新启动。 nodemon
不应单独用于长时间运行的生产服务器,因为它会在您退出shell时停止。 pm2
和forever
是有效的库,如有必要,您可以调查upstart
,systemd
和nginx
。
关于@Kalana Demel的回答,我考虑使用forever
在我上面的解释中使用nodemon
来运行forever
。
如何确保我的应用程序始终可靠
对于您的问题的总体答案,您应该编写测试以确保您的代码可靠。如果您已经编写了有效的单元和集成测试,那么选择一个程序包来运行该过程将是微不足道的(与可靠性无关),因为您不应该期望它崩溃。
答案 1 :(得分:0)
nodemon是一个不错的选择,你可以使用forever和nodemon的组合,使用
forever start -c nodemon app.js
另外根据我的经验,永远是非常可靠的,试试
forever logs app.js
查看确切导致错误的原因
答案 2 :(得分:0)
pm2 是不错的选择,我个人在所有node.js服务器中使用pm2,与其他服务器相比,它提供了许多更重要的功能。
关于它的最好的事情之一可以很容易地与keymetrics / newrelic集成,用于服务器的分析
此外,pm2将为您提供CPU /内存使用,您甚至可以配置重启限制和间隔。