介绍
PM2 是一个带有负载均衡功能的 Node 应用的进程管理器。
当你要把你的独立代码利用全部的服务器上的所有 CPU,并保证进程永远都活着,0 秒的重载, PM2 是完美的。它非常适合 IaaS 结构,但不要把它用于 PaaS 方案(随后将开发 Paas 的解决方案)。
备注:SaaS
、PaaS
和 IaaS
是云服务模式
SaaS
软件即服务,例如 Google 的 Gmail 邮箱服务,面向应用型用户PaaS
平台即服务,例如 Google 的 GAE,面向开发型用户IaaS
基础架构即服务,例如亚马逊的 AWS,IaaS 对于不知道新推出的应用程序/网站会有多成功的创业公司来说非常有用
云服务模式:SaaS、PaaS 和 IaaS,哪一种适合你?
主要特性
内建负载均衡(使用 Node cluster 集群模块)
后台运行
0 秒停机重载,我理解大概意思是维护升级的时候不需要停机.
具有 Ubuntu 和 CentOS 的启动脚本
停止不稳定的进程(避免无限循环)
控制台检测
提供 HTTP API
远程控制和实时的接口 API ( Nodejs 模块,允许和 PM2 进程管理器交互 )
测试过 Nodejs v0.11/v0.10/v0.8 版本,兼容 CoffeeScript,基于 Linux 和 MacOS。
安装
1 | # 第一种方式 |
用法
1 | npm install pm2 -g # 命令行安装 pm2 |
运行进程的不同方式
1 | pm2 start app.js -i max # 根据有效CPU数目启动最大进程数目 |
你也可以执行用其他语言编写的app ( fork 模式):
1 | pm2 start my-bash-script.sh -x --interpreter bash |
0 秒停机重载:这项功能允许你重新载入代码而不用失去请求连接。
注意:
仅能用于 web 应用
运行于 Node 0.11.x
版本
运行于 cluster
模式(默认模式)
1 | pm2 reload all |