请教下大家,node 项目部署,使用 pm2 管理还是 docker 管理好?
pm2
pm2 是一个带有负载均衡功能的 Node 应用的多进程管理器,虽然是为 node 开发的,但也能管理其他程序进程
当你要把你的独立代码利用全部的服务器上的所有 CPU ,并保证进程永远都活着,0 秒的重载,PM2 是完美的。
主要特性:
1 、多进程启动项目,内建负载均衡(使用 Node cluster 集群模块)
2 、可启动静态文件服务(类似 nginx 静态服务)
3 、可使用插件分割日志
4 、可通过重启策略配置条件重载(可以运行一些脚本,定时任务等)
5 、可以配置部署命令,轻量化一键部署项目(小项目可用,跟 devops 差得远)
6 、有 pm2 服务接口,可远程获取 pm2 集群数据
7 、具有 Ubuntu 和 CentOS 的启动脚本
保活是为了让你 node 因为各种意外死掉之后可以自动重启
pm2 很屌,我没用= =
你的目的是啥?单纯的想把 node 部署到服务器上吗?那直接 node xxx.js 不就行了
docker restart
就是保持容器的活动状态,出现故障时自动重启,也可以用 docker compose, 设置 restart 为 always
systemd
要保活,不就 linux 自带的 systemd 加 1 行
Restart=always
就行了嘛。
花式根据 exit code 来保活 得看文档里这个 Restart 参数: http://www.freedesktop.org/software/systemd/man/systemd.service.html#Restart=