pm2替代方案

一、目前可以用的现成库

功能 forever nodemon pm2 node-supervisor
后台 ×
日志 × ×
热重载
监控 × × ×
集群 × ×

推荐用 forever,相比 pm2,少了 cluster 功能,负载均衡这一块需要交给运维自己配。

二、基于 egg-cluster 的移植方案

阿里的后端框架 egg.js 的进程管理没有选型 pm2,而是自己开发了一套多进程模型,叫 egg-cluster。其支持:

  1. 多进程模型和进程间通讯
  2. 完整进程守护
  3. 增强的集群功能

但其不支持监控。
拉代码试跑了一下,这套方案和他们的 egg.js 框架强绑定,想把进程管理的相关逻辑单独分离出来,需要花费时间,下午研究了大约 3 小时,暂未找到头
绪。

三、使用 linux 提供的系统命令

采用systemd管理进程,express官方文档推荐此方案。
https://www.axllent.org/docs/nodejs-service-with-systemd/
这块是运维需要参与的地方,缺点是比较配置比较重,对开发来说学习成本高