国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

Node學習記錄之cluster模塊

2024-05-06 15:16:32
字體:
來源:轉載
供稿:網友

在如今機器的CPU都是多核的背景下,Node的單線程設計已經沒法更充分的"壓榨"機器性能了。所以從v0.8開始,Node新增了一個內置模塊——“cluster”,故名思議,它可以通過一個父進程管理一坨子進程的方式來實現集群的功能。

var cluster = require('cluster');var http = require('http');var numCPUs = require('os').cpus().length; // 獲取CPU的個數 if (cluster.isMaster) {  for (var i = 0; i < numCPUs; i++) {    cluster.fork();  }   cluster.on('exit', function(worker, code, signal) {    console.log('worker ' + worker.process.pid + ' died');  });} else {  http.createServer(function(req, res) {    res.writeHead(200);    res.end("hello world/n");  }).listen(8000);}

通過isMaster屬性,判斷是否Master進程,是則fork子進程,否則啟動一個server。每個HTTP server都能監聽到同一個端口。但是在實際項目中,我們的啟動代碼一般都已經封裝在了app.js中,要把整塊啟動邏輯嵌在上面的if else中實在不優雅。 所以,我們可以這樣:

var cluster = require('cluster');var numCPUs = require('os').cpus().length; if (cluster.isMaster) {  for (var i = 0; i < numCPUs; i++) {    cluster.fork();  }  // 其它代碼  } else {  require("./app.js");}

簡單之處就在于原本的應用邏輯根本不需要知道自己是在集群還是單邊。(當然,如果應用在內存中維護了某些狀態,比如session,就需要運用某些機制來共享了,這里不詳說)

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持錯新站長站。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 电白县| 和平县| 博白县| 桦南县| 武义县| 苏尼特左旗| 萨迦县| 汕尾市| 西峡县| 股票| 卓资县| 保山市| 华宁县| 鄄城县| 阿拉善左旗| 远安县| 文安县| 双流县| 弥渡县| 佛学| 海兴县| 溧阳市| 白水县| 恩平市| 富川| 罗甸县| 百色市| 荣昌县| 三原县| 和静县| 雷山县| 嘉义县| 土默特左旗| 固原市| 桃园县| 天柱县| 呼伦贝尔市| 长海县| 东方市| 仁化县| 会宁县|