2KB项目,专业的源码交易网站 帮助 收藏 每日签到

辞别node-forever,拥抱PM2

  • 时间:2019-04-22 02:55 编辑:2KB 来源:2KB.COM 阅读:437
  • 扫一扫,手机访问
  • 分享
摘要:
Node.js 英文原文:Goodbye node-forever,hello PM2

pm2 logo

devo.ps团队对JavaScript的留恋曾经不是甚么机密了;node.js作为Server端,AngularJS作为客户端,某种水平上说,我们的仓库是用它建成的.我们构建静态客户端和RESTful JSON API的办法意味着我们跑了非常多的node.js,我必需供认虽然node.js的一切都使人畏敬,但当我们在生产情况中运转它时它依然会让我们觉得头疼.比拟一些愈加成熟的言语,它的Tools和最好理论依然缺少(试想一下:监控,日记,错误处置).

到今朝为止,我们依然依靠美丽俏皮的node-forever模块.它长短常巨大的模块,不外仍然缺失一些功用:

  • 有限的监控和日记功用,
  • 过程管理设置装备摆设的支撑差,
  • 不支撑集群,
  • 代码库老化(意味着在晋级node.js时频仍的失败).

这就是为何我们要在过来的几个月里去写PM2模块.在我们行将宣布针对生产情况的正式版之前我们想先让您看一眼.

PM2究竟是甚么个工具呢?

起首第一件事,你需求先经过 npm 来安装它:

npm install -g pm2

让我们经过表格来比照下:

Feature Forever PM2
Keep Alive ? ?
Coffeescript ?
Log aggregation
?
API
?
Terminal monitoring
?
Clustering
?
JSON configuration
?

如今让我来引见一点点首要特征...

原生的集群化支撑

Node v0.6引入了集群特征,答应你在多个Node使用中同享socket.问题在于,它不克不及在容器外运转并且需求一些额定的设置装备摆设来处置主过程和子过程.

PM2原生支撑处置这个问题,并且不需求额定的代码:PM2自身作为主过程,然后它将你的代码封装到一个特别的集群过程里,就像node.js一样,为你的代码文件添加一些全局变量.

想要启动一个运用一切CPU中心的集群,你只需求键入以下的指令:

$ pm2 start app.js -i max

然后;

$ pm2 list

然后就会显示相似下面的工具(ASCII UI FTW);

pm2 list

就像你看到的,如今你的使用有几多个过程就取决于你的CPU中心数了.

依照termcaps-HTOP(Linux下的系统监控与过程管理软件)的方法管理

经过pm2 list号令来察看一切运转的过程和它们的形态曾经足够好了.可是怎样来追踪它们的资本耗费呢?别担忧,用这个号令:

$ pm2 monit

你可以失掉过程(和集群)的CPU的运用率和内存占用.

pm2 monit

声明: node-usage 到今朝为止还不支撑MacOS(随意甚么功能请求),不外它在Linux下运转杰出.

如今,让我们来核实一下我们的集群,另有对内存仓库的渣滓收受接管,我们假定你曾经有一个HTTP基准测试Tools(假如没有,你必定要运用 WRK):

$ express bufallo // Create an express app $ cd bufallo
$ npm install
$ pm2 start app.js -i max
$ wrk -c 100 -d 100 http://localhost:3000/

在另外一个终端,运转监控选项:

$ pm2 monit

耶~

及时集中log处置

如今你不能不管理多个集群过程:一个爬取数据,一个处置数据,等等...这就意味着大量log,你可以依照老式的办法处置:

$ tail -f /path/to/log1 /path/to/log2 ...

但我们想的很周密,我们增加了logs功用:

$ pm2 logs

pm2 monit

疾速恢复

如今工作一切顺遂,你的过程嗡嗡的运转着,你需求做一次硬重启(hard restart).如今吗?是的,起首,dump掉:

$ pm2 dump

然后,你可以从文件中恢复它:

$ pm2 kill // 让我们假定一个PM2停掉了 
$ pm2 resurect // 我一切的过程又满血满形态复生了 

强壮的API

比如说,你想要监控一切被PM2管理的过程,并且同时还想监控运转这些过程的机械的形态(乃至盼望创立一个Angular使用来挪用这些API...):

$ pm2 web

翻开阅读器输出 http://localhost:9615 ,我嘞个去!!

对了,另有非常多特征...

  • 全体测试经过,
  • 新一代的update-rc.d(pm2 startup),固然它仍是alpha版,
  • 开发形式下更改文件主动重启(pm2 dev),也异样仍是草稿,
  • 主动刷新log,
  • 快捷的经过JSON文件管理你的使用,
  • 在error log里记载未捕捉的异常,
  • 记载重启的次数和工夫,
  • 加入时主动杀死过程.


下一步方案?

起首,你可以去Github上粉我们(我们爱好stars): https://github.com/Unitech/pm2.

我们开发的PM2供给了进步前辈完好的Node过程管理处理计划.我们盼望能有更多的人来协助我们:更多的pull requests.一些还逗留在开发道路图上面的功用我们会尽快完成,下面这些就是:

  • 远程管理/形态校验,
  • 嵌入式跨过程通讯通道(音讯总线),
  • V8渣滓收受接管的内存走漏反省,
  • Web界面,
  • 监控数据耐久化,
  • 邮件告诉.

特殊感激 Makara Wang 的观念和Tools,另有 Alex Kocharin 提的建议和提交的代码.

本文中的一切译文仅用于进修和交换目标,转载请务必注明文章译者、出处、和本文链接。 2KB翻译任务按照 CC 协议,假如我们的任务有进犯到您的权益,请实时联络我们。


2KB项目(www.2kb.com,源码交易平台),提供担保交易、源码交易、虚拟商品、在家创业、在线创业、任务交易、网站设计、软件设计、网络兼职、站长交易、域名交易、链接买卖、网站交易、广告买卖、站长培训、建站美工等服务

  • 全部评论(0)
资讯详情页最新发布上方横幅
最新发布的资讯信息
【计算机/互联网|】Nginx出现502错误(2020-01-20 21:02)
【计算机/互联网|】网站运营全智能软手V0.1版发布(2020-01-20 12:16)
【计算机/互联网|】淘宝这是怎么了?(2020-01-19 19:15)
【行业动态|】谷歌关闭小米智能摄像头,因为窃听器显示了陌生人家中的照片(2020-01-15 09:42)
【行业动态|】据报道谷歌新闻终止了数字杂志,退还主动订阅(2020-01-15 09:39)
【行业动态|】康佳将OLED电视带到美国与LG和索尼竞争(2020-01-15 09:38)
【行业动态|】2020年最佳AV接收机(2020-01-15 09:35)
【行业动态|】2020年最佳流媒体设备:Roku,Apple TV,Firebar,Chromecast等(2020-01-15 09:31)
【行业动态|】CES 2020预览:更多的流媒体服务和订阅即将到来(2020-01-08 21:41)
【行业动态|】从埃隆·马斯克到杰夫·贝佐斯,这30位人物定义了2010年代(2020-01-01 15:14)
联系我们

Q Q: 7090832

电话:400-0011-990

邮箱:7090832@qq.com

时间:9:00-23:00

联系客服
商家入住 服务咨询 投拆建议 联系客服
0577-67068160
手机版

扫一扫进手机版
返回顶部