当node.js发生故障时,如何自动将其备份?

问题描述

| 由于节点基本上是单个进程,因此当发生严重错误时,整个应用程序将死亡。 我现在有几个基于express构建的应用程序,并且我正在使用一些手动方法来防止延长停机时间(process.on(\'uncaughtException \')和自定义心跳监视器)。 社区有什么建议吗? 最佳做法?构架? 谢谢! 一种     

解决方法

使用like0 或使用
supervisor
。 只需
npm link
,然后
sudo supervisor server.js
。 这些类型的库还支持热重装。您可以从命令行中使用某些工具,它们将节点服务作为子进程运行。还有其他一些期望您编写代码来重新加载自身的代码。 理想情况下,您要转向完全失效的安全负载均衡器。如果您的负载均衡器中的单个节点进程崩溃,则希望它安静地重新启动,并挽救所有连接和数据。 就个人而言,我建议您在开发中使用
supervisor
(由isaacs编写!),并为您的实际生产服务器建议使用完整的负载均衡器(nginx或node)。 当然,您已经在并行运行多个节点服务器进程,因为您关心跨多个内核进行扩展;)     ,永远使用。 \“一个简单的CLI工具,可确保给定脚本连续(即永远)运行” 只需使用npm安装
npm install forever
和类型
forever start app.js
    ,如果您使用的是Ubuntu,则可以使用upstart(默认情况下已安装)。 $ cat /etc/init/my_app.conf   说明\“ my_app \”   作者“我”      在(本地文件系统和网络设备启动IFACE = eth0)上启动   关掉      重生      exec sh -c \“ env NODE_ENV =生产节点/path/myapp/app.js >> /var/log/node.log 2>&1 \” \“ respawn \”表示该应用程序死后将重新启动。 启动应用   启动my_app 对于其他命令   人初始化     ,尝试看看永远的模块。     ,我也强烈推荐
forever
。我昨天用它,轻而易举: 安装
npm install forever
启动您的应用程序
forever start myapp.js
检查其工作working10 尝试杀死您的应用程序:
ps
获取您的myapp.js pid并运行
kill <pid
运行
forever list
,您会看到它再次运行     ,您可以尝试使用Fugue,它是node.js的库,类似于Spark或Unicorn: https://github.com/pgte/fugue Fugue可以管理任何node.js服务器类型,而不仅仅是Web服务器,并且它是作为Node.js脚本而不是CLI命令设置和配置的,因此普通的node.js构建和部署工具链都可以使用它。