node后端服务保活

node后端服务保活,第1张

目前的项目中使用了node,作为一个简单的后端服务,随着承担着越来越多的线上业务的服务,就要求了服务端的稳定性,而其中最重要的一点就是服务保活。有进程终止后自动重启的能力。

forever是一个简单的命令行工具,他能确保一个给定的脚本持续运行。forever完全基于命令行 *** 作,在forever进程之下,创建node的子进程,通过monitor监控node子进程的运行情况,一旦文件更新,或者进程挂掉,forever会自动重启node服务器,确保应用正常运行。

所以就看一下forever的项目吧。主要的进程控制方面的代码地址。

核心就是使用了node api 中的 spawn,创建子进程,这个子进程就是我们真正的需要运行的node端服务。

父子进程的通信核心就是为了保活,主要就是监听了子进程,也就是需要被守护进程的exit事件

逻辑很简单,分别两个场景,一个是希望子进程不要再启动,一般就是外部控制杀死的;一个是意外退出后的重启,此处与一个spinning值的判断,也就是在退出后存在一个重启的时间间隔。

message事件来监听,用send方法来发送事件,父子进程通信就可以用做外部的控制的实现了。这里我们还需要注意一个细节,就是node后端服务运行中会输出很多的日志,此时放在子进程中的控制台输出,如果希望暴露出来就可以使用optionsstdio属性。

保活的场景很多,这里可以使用forever库来处理,配合监控和日志功能,更好的保证线上环境的稳定。

例: 要发布的项目为 /code/project

原因: npm 版本过低 yum 仓库中的 nodejs 版本相比主流版本差太多了,经常会遇到各种莫名其妙的问题

解决: 直接卸载,改用源码安装的方式

node不是向前兼容的。Node是一个服务器端JavaScript解释器,Node的目标是帮助程序员构建高度可伸缩的应用程序,编写能够处理数万条同时连接到一个物理机的连接代码,Node也有模块概念,允许向Node内核添加模块,可供选择的用于Node的模块有数百个之多,社区在创建、发布和更新模块方面非常活跃,一天甚至可以处理数十个模块,是一种可以用前端语言写后端的解释器。

Nodejs 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。 Nodejs 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。Nodejs 的包管理器 npm,是全球最大的开源库生态系统。(nodejs官网上的介绍),正如官网上介绍的那样,nodejs确实很牛!怎么个牛法?看看下面的代码就知道了。

//引入>首先创建一个>

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/12649910.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-08-26
下一篇2025-08-26

发表评论

登录后才能评论

评论列表(0条)

    保存