由于 Node 基本上是一个单一的进程,当出现严重错误时,整个应用程序就会死亡。
我现在有几个基于 express 构建的应用程序,我正在使用一些手动方法来防止停机时间延长( process.on('uncaughtException') 和自定义心跳监视器)。
来自社区的任何建议? 最佳实践?框架?
谢谢! 一个
最佳答案
使用像 forever
这样的东西
或使用 supervisor
.
只是 npm link
然后是 sudo supervisor server.js
。
这些类型的库也支持热重载。您可以从命令行使用一些,它们将 Node 服务作为子进程为您运行。还有其他人希望您编写代码来重新加载自己。
理想情况下,您希望转向故障安全的成熟负载均衡器。如果负载均衡器中的单个 Node 进程崩溃,您希望它安静地重新启动并挽救所有连接和数据。
就我个人而言,我会推荐 supervisor
用于开发(它是由 isaacs 编写的!),并为您的实际生产服务器推荐一个完整的负载均衡器(nginx 或 node)。
当然,您已经在并行运行多个 Node 服务器进程,因为您关心跨多个内核的扩展;)
关于node.js - 当 node.js 宕机时,我怎样才能让它自动恢复?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5668126/