本文主要给大家介绍了关于node.js中cluster使用的相关教程,分享出来供大家参考学习,下面来看看详细的介绍:

一、使用NODE中cluster利用多核CPU
var cluster = require('cluster');
var http = require('http');
var numCPUs = require('os').cpus().length;
if (cluster.isMaster) {
// 创建工作进程
for (var i = 0; i < numCPUs; i++) {
cluster.fork();
}
cluster.on('death', function(worker) {
console.log('worker ' + worker.pid + ' died');
cluster.fork();//重启子进程
});
} else {
// 工作进程创建http 服务器
http.Server(function(req, res) {
res.writeHead(200);
res.end("hello world\n");
}).listen(8000);
}
二、通过消息传递来监控工作进程状态
var cluster = require('cluster');
var http = require('http');
var numCPUs = require('os').cpus().length;
var rssWarn = (12 * 1024 * 1024)
, heapWarn = (10 * 1024 * 1024)
if(cluster.isMaster) {
for(var i=0; i<numCPUs; i++) {
var worker = cluster.fork();
worker.on('message', function(m) {
if (m.memory) {
console.log(m.memory.rss,rssWarn)
if(m.memory.rss > rssWarn) {
console.log('Worker ' + m.process + ' using too much memory.')
}
}
})
}
} else {
// 服务器
http.createServer(function(req,res) {
res.writeHead(200);
res.end('hello world\n')
}).listen(8000)
// 每秒报告一次状态
setInterval(function report(){
process.send({memory: process.memoryUsage(), process: process.pid});
}, 1000)
}
三、终止进程
var cluster = require('cluster');
var http = require('http');
var numCPUs = require('os').cpus().length;
var rssWarn = (50 * 1024 * 1024)
, heapWarn = (50 * 1024 * 1024)
var workers = {}
if(cluster.isMaster) {
for(var i=0; i<numCPUs; i++) {
createWorker()
}
setInterval(function() {
var time = new Date().getTime()
for(pid in workers) {
if(workers.hasOwnProperty(pid) &&
workers[pid].lastCb + 5000 < time) {
console.log('Long running worker ' + pid + ' killed')
workers[pid].worker.kill()
delete workers[pid]
createWorker()
}
}
}, 1000)
} else {
// 服务器
http.Server(function(req,res) {
// 打乱200 个请求中的1 个
if (Math.floor(Math.random() * 200) === 4) {
console.log('Stopped ' + process.pid + ' from ever finishing')
while(true) { continue }
}
res.writeHead(200);
res.end('hello world from ' + process.pid + '\n')
}).listen(8000)
// 每秒钟报告一次状态
setInterval(function report(){
process.send({cmd: "reportMem", memory: process.memoryUsage(),
process: process.pid})
}, 1000)
}
function createWorker() {
var worker = cluster.fork()
console.log('Created worker: ' + worker.pid)
// 允许开机时间
workers[worker.pid] = {worker:worker, lastCb: new Date().getTime()-1000}
worker.on('message', function(m) {
if(m.cmd === "reportMem") {
workers[m.process].lastCb = new Date().getTime()
if(m.memory.rss > rssWarn) {
console.log('Worker ' + m.process + ' using too much memory.')
}
}
})
}
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。
# nodejs cluster
# nodejs的cluster
# cluster node
# 多核
# 给大家
# 来看看
# 这篇文章
# 谢谢大家
# 重启
# 创建工作
# 每秒钟
# 有疑问
# pid
# log
# died
# worker
# function
# death
# console
# fork
# Server
# listen
# rssWarn
相关文章:
建站之星IIS配置教程:代码生成技巧与站点搭建指南
西安大型网站制作公司,西安招聘网站最好的是哪个?
定制建站是什么?如何实现个性化需求?
小说建站VPS选用指南:性能对比、配置优化与建站方案解析
云南网站制作公司有哪些,云南最好的招聘网站是哪个?
如何配置支付宝与微信支付功能?
香港服务器租用费用高吗?如何避免常见误区?
如何选择建站程序?包含哪些必备功能与类型?
建站主机是否属于云主机类型?
网站好制作吗知乎,网站开发好学吗?有什么技巧?
如何在建站主机中优化服务器配置?
浙江网站制作公司有哪些,浙江栢塑信息技术有限公司定制网站做的怎么样?
ppt在线制作免费网站推荐,有什么下载免费的ppt模板网站?
交易网站制作流程,我想开通一个网站,注册一个交易网址,需要那些手续?
如何在IIS7上新建站点并设置安全权限?
公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?
如何用VPS主机快速搭建个人网站?
php条件判断怎么写_ifelse和switchcase的使用区别【对比】
成都网站制作价格表,现在成都广电的单独网络宽带有多少的,资费是什么情况呢?
想学网站制作怎么学,建立一个网站要花费多少?
太原网站制作公司有哪些,网约车营运证查询官网?
沈阳个人网站制作公司,哪个网站能考到沈阳事业编招聘的信息?
如何快速生成凡客建站的专业级图册?
linux top下的 minerd 木马清除方法
Swift开发中switch语句值绑定模式
如何配置WinSCP新建站点的密钥验证步骤?
车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?
如何通过虚拟主机快速搭建个人网站?
建站之星在线客服如何快速接入解答?
c# F# 的 MailboxProcessor 和 C# 的 Actor 模型
免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?
如何快速查询域名建站关键信息?
如何在Windows 2008云服务器安全搭建网站?
高防服务器租用指南:配置选择与快速部署攻略
建站之星多图banner生成与模板自定义指南
建站主机类型有哪些?如何正确选型
大型企业网站制作流程,做网站需要注册公司吗?
猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?
在线ppt制作网站有哪些,请推荐几个好的课件下载的网站?
湖北网站制作公司有哪些,湖北清能集团官网?
网站海报制作教学视频教程,有什么免费的高清可商用图片网站,用于海报设计?
Java解压缩zip - 解压缩多个文件或文件夹实例
如何快速生成可下载的建站源码工具?
我的世界制作壁纸网站下载,手机怎么换我的世界壁纸?
免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?
整蛊网站制作软件,手机不停的收到各种网站的验证码短信,是手机病毒还是人为恶搞?有这种手机病毒吗?
如何通过西部数码建站助手快速创建专业网站?
红河网站制作公司,红河事业单位身份证如何上传?
免费ppt制作网站,有没有值得推荐的免费PPT网站?
如何设置并定期更换建站之星安全管理员密码?
*请认真填写需求信息,我们会在24小时内与您取得联系。