使用cluster 将自己的Node服务器扩展为多线程服务器
用nodejs的朋友都有了解,node是单线程的,也就是说跑在8核CPU上,只能使用一个核的算力。
单线程一直是node的一个诟病,但随着0.6版本中引入cluster之后,这个情况则得到了改变,开发人员可以依靠cluster很轻松的将自己的Node服务器扩展为多线程服务器了。
什么是Cluster
cluster是node提供的一个多线程库,用户可以使用它来创建多个线程,线程之间共享一个监听端口,当有外部请求这个端口时,cluster会将请求转发到随机线程里。因为每个node线程都会占用几十兆的内存,所以不能像php那样对每个请求创建一个线程,一般来说创建的线程数最多都不会超过cpu的核心数量。
varcluster=require('cluster');
varhttp=require('http');
varnumCPUs=require('os').cpus().length;
if(cluster.isMaster){ //Forkworkers. for(vari=0;i<numCPUs;i++){ cluster.fork(); }
cluster.on('exit',function(worker,code,signal){ console.log('worker'+worker.process.pid+'died'); }); }else{ //WorkerscanshareanyTCPconnection //InthiscaseitsaHTTPserver http.createServer(function(req,res){ res.writeHead(200); res.end("helloworld\n"); }).listen(8000); }
热门推荐
3 甄嬛传祝福语简短
9 敏字的祝福语简短
10 给男生的简短祝福语
11 写生日祝福语简短唯美
12 男友红包祝福语简短精辟
13 给母校送花祝福语简短
14 祝福语简短唯美10字
15 班级群毕业祝福语简短
16 阳历新年祝福语大全 简短
17 祝女儿出嫁简短祝福语
18 给老师祝福语简短元旦