91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Node學習記錄之cluster模塊

發布時間:2020-09-11 05:30:44 來源:腳本之家 閱讀:149 作者:AlexZ33 欄目:web開發

在如今機器的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,就需要運用某些機制來共享了,這里不詳說)

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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

阜南县| 大同县| 开封县| 昭苏县| 历史| 和政县| 宣汉县| 台州市| 循化| 克拉玛依市| 区。| 绥化市| 四子王旗| 玛纳斯县| 静宁县| 黎城县| 大悟县| 浦江县| 葫芦岛市| 化州市| 牟定县| 健康| 藁城市| 涞水县| 澎湖县| 渝北区| 石渠县| 泰兴市| 锦州市| 黄平县| 临江市| 苗栗县| 逊克县| 册亨县| 栾城县| 宁都县| 本溪市| 浏阳市| 桃园市| 朔州市| 木兰县|