发布于 2016-10-22 22:26:29 | 594 次阅读 | 评论: 0 | 来源: 网友投递

这里有新鲜出炉的7天学会Node.js,程序狗速度看过来!

Node.js 服务器端的JavaScript

Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台, 用来方便地搭建快速的 易于扩展的网络应用· Node.js 借助事件驱动, 非阻塞I/O 模型变得轻量和高效, 非常适合 运行在分布式设备 的 数据密集型 的实时应用


本文讲述nodejs的安装的运行环境说明。关键工具:nodejs、npm、pm2

1. 名词说明:
1.  Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台, 用来方便地搭建快速的, 易于扩展的网络应用。类似php、java等服务器端语言。
2.  NPM的全称是Node Package Manager,是一个NodeJS包管理和分发工具。简单一点说就是插件管理工具
3.  PM2 is perfect when you need to spread your stateless Node.js code accross all CPUs available on a server, to keep all processes alive forever and to 0s reload them.
nodejs 项目的发布和管理工具


2. 安装
1. 下载 nodejs的安装包   http://www.nodejs.org/download/

有多个版本选择,windows、linux、mac   我这里选择linux64位


这也就能直接复制文件的url地址



1.源码安装 (推荐)
下载源码到本地  wget http://nodejs.org/dist/v0.10.29/node-v0.10.29.tar.gz
在命令行中输入:


tar -zxvf 文件名
cd node-v0.10.29
./configure
sudo make
sudo make install

 


如果没报错,
输入 node -v  查看node的安装版本
输入 npm -v   查看npm的版本



2 .  直接安装
 wget http://nodejs.org/dist/v0.10.28/node-v0.10.28-linux-x64.tar.gz

下载好了后,解压:tar -zxvf node-v0.10.28-linux-x64.tar.gz
解压后不需要安装,直接把bin目录加到环境变量中即可。



3.nodejs 程序运行管理

1.  node 启动x项目
最简单的nodejs web程序

var http = require('http'),
server = http.createServer(function (req, res) {
    res.writeHeader(200, {"Content-Type": "text/plain"});
    res.end("Hello Worldn");
});
server.listen(3001,function(){
    console.log("http start 3001");
});

保存以上代码 到 app.js 文件,开始运行
node app.js     
在浏览器输入http://localhost:3001/   即可看到输出 hello wolrd。

以上为简陋的项目启动方式,如果你退出终端,项目就停止运行了,也没有详细的内存和使用时长、日志等信息。


2.  神器 pm2 

 1.安装pm2   官方文档 https://github.com/Unitech/pm2
npm install pm2@latest -g


想要启动一个使用所有CPU核心的集群,你只需要键入如下的指令:
$ pm2 start app.js -i max

pm2 start app.js -i 3    # Will start 3 processes
然后:

$ pm2 list
然后就会显示类似下面的东西(ASCII UI FTW);

就像你看到的,现在你的应用有多少个进程就取决于你的CPU核心数了
按照termcaps-HTOP(Linux下的系统监控与进程管理软件)的方式管理
通过pm2 list命令来观察所有运行的进程以及它们的状态已经足够好了.但是怎么来追踪它们的资源消耗呢?别担心,用这个命令:
$ pm2 monit
你可以得到进程(以及集群)的CPU的使用率和内存占用.

声明:node-usage到目前为止还不支持MacOS(随便什么性能要求),不过它在Linux下运行良好.
现在,让我们来核实一下我们的集群,还有对内存堆栈的垃圾回收,我们假设你已经有一个HTTP基准测试工具(如果没有,你一定要使用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

快速恢复
现在事情一切顺利,你的进程嗡嗡的运行着,你需要做一次硬重启(hard restart).现在吗?是的,首先,dump掉:
$ pm2 dump
然后,你可以从文件中恢复它:
$ pm2 kill      //让我们假设一个PM2停掉了

$ pm2 resurect  //我所有的进程又满血满状态复活了

 更多操作 查看 https://github.com/Unitech/pm2



最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务