美文网首页
pm2管理koa2项目

pm2管理koa2项目

作者: 熊爸天下_56c7 | 来源:发表于2021-04-09 15:06 被阅读0次

    PM2是具有内置负载平衡器的Node.js应用程序的生产进程管理器。它可以使应用程序永远保持活动状态,可以在不停机的情况下重新加载它们,并简化常见的系统管理任务。当你要把你的独立代码利用全部的服务器上的所有CPU,并保证进程永远都活着,0秒的重载, PM2是完美的。

    PM2官方网站:https://pm2.keymetrics.io/
    PM2的NPM地址: https://www.npmjs.com/package/pm2
    PM2的github地址: https://github.com/Unitech/pm2

    一. 安装pm2

    npm install pm2 -g
    

    二. 启动koa2项目

    pm2 start ./bin/www --name="www"
    

    这种方法启动的项目没有监听自动重启的功能, 如果需要自动重启, 需执行以下启动命令

    三. 启动koa2项目(带监听)

    监听状态下, 项目遇到问题会自动重启, 比较适合生产环境

    pm2 start ./bin/www --name="www" --watch
    

    四. 停止某个项目

    pm2 stop www
    pm2 stop all #停止所有
    

    五. 重启某个项目

    pm2 restart www
    pm2 restart www --watch
    pm2 restart all
    pm2 restart all --watch
    
    pm2 reload all   #0秒停机重载进程 (用于 NETWORKED 进程)
    

    六. 删除某个项目

    pm2 delete app
    pm2 delete all #删除所有
    

    七. 当前项目清单

    pm2 list
    

    八. 其他pm2命令

    1. 监视所有进程

    pm2 monit
    pm2 monit www   //查询某个项目
    

    2. 显示所有进程日志

    pm2 logs
    pm2 logs www   //查询某个项目
    

    3. 显示某个项目的详情

    pm2 show www
    

    九. 多进程

    运行进程的不同方式:

    $ pm2 start app.js -i max  # 根据有效CPU数目启动最大进程数目
    $ pm2 start app.js -i 3      # 启动3个进程
    $ pm2 start app.js -x        #用fork模式启动 app.js 而不是使用 cluster
    $ pm2 start app.js -x -- -a 23   # 用fork模式启动 app.js 并且传递参数 (-a 23)
    $ pm2 start app.js --name serverone  # 启动一个进程并把它命名为 serverone
    $ pm2 stop serverone       # 停止 serverone 进程
    $ pm2 start app.json        # 启动进程, 在 app.json里设置选项
    $ pm2 start app.js -i max -- -a 23                   #在--之后给 app.js 传递参数
    $ pm2 start app.js -i max -e err.log -o out.log  # 启动 并 生成一个配置文件
    你也可以执行用其他语言编写的app  ( fork 模式):
    $ pm2 start my-bash-script.sh    -x --interpreter bash
    $ pm2 start my-python-script.py -x --interpreter python
    

    关于多进程, 请参考如下文章:
    https://www.cnblogs.com/xingchong/p/13183162.html

    十. pm2 启动模式 fork 和 cluster 的区别

    fork模式,单实例多进程,常用于多语言混编,比如php、python等,不支持端口复用,需要自己做应用的端口分配和负载均衡的子进程业务代码。
    缺点就是单服务器实例容易由于异常会导致服务器实例崩溃。

    cluster模式,多实例多进程,但是只支持node,端口可以复用,不需要额外的端口配置,0代码实现负载均衡。
    优点就是由于多实例机制,可以保证服务器的容错性,就算出现异常也不会使多个服务器实例同时崩溃。

    共同点,由于都是多进程,都需要消息机制或数据持久化来实现数据共享。

    相关文章

      网友评论

          本文标题:pm2管理koa2项目

          本文链接:https://www.haomeiwen.com/subject/bvtikltx.html