欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Node學(xué)習(xí)記錄之cluster模塊

 更新時(shí)間:2017年05月31日 16:44:51   作者:AlexZ33  
本篇文章主要介紹了Node學(xué)習(xí)記錄之cluster模塊,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

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

var cluster = require('cluster');
var http = require('http');
var numCPUs = require('os').cpus().length; // 獲取CPU的個(gè)數(shù)
 
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進(jìn)程,是則fork子進(jìn)程,否則啟動(dòng)一個(gè)server。每個(gè)HTTP server都能監(jiān)聽到同一個(gè)端口。但是在實(shí)際項(xiàng)目中,我們的啟動(dòng)代碼一般都已經(jīng)封裝在了app.js中,要把整塊啟動(dòng)邏輯嵌在上面的if else中實(shí)在不優(yōu)雅。 所以,我們可以這樣:

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");
}

簡(jiǎn)單之處就在于原本的應(yīng)用邏輯根本不需要知道自己是在集群還是單邊。(當(dāng)然,如果應(yīng)用在內(nèi)存中維護(hù)了某些狀態(tài),比如session,就需要運(yùn)用某些機(jī)制來共享了,這里不詳說)

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • npm?install安裝失敗報(bào)錯(cuò):The?operation?was?rejected?by?your?operating?system

    npm?install安裝失敗報(bào)錯(cuò):The?operation?was?rejected?by?your?

    這篇文章主要給大家介紹了關(guān)于npm?install安裝失敗報(bào)錯(cuò):The?operation?was?rejected?by?your?operating?system的相關(guān)資料,文中給出了多種解決方法供大家參考學(xué)習(xí),需要的朋友可以參考下
    2023-04-04
  • 關(guān)于Error:EPERM:operation?not?permitted,mkdir...的幾種解決辦法對(duì)比

    關(guān)于Error:EPERM:operation?not?permitted,mkdir...的幾種解決辦法對(duì)比

    這篇文章主要給大家介紹了關(guān)于Error:EPERM:operation?not?permitted,mkdir...的幾種解決辦法對(duì)比,文中通過圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2023-01-01
  • node.JS的crypto加密模塊使用方法詳解(MD5,AES,Hmac,Diffie-Hellman加密)

    node.JS的crypto加密模塊使用方法詳解(MD5,AES,Hmac,Diffie-Hellman加密)

    本文將詳細(xì)介紹node.JS的加密模塊crypto實(shí)現(xiàn)MD5,AES,Hmac,Diffie-Hellman加密的詳解方法,需要的朋友可以參考下
    2020-02-02
  • nodejs中函數(shù)的調(diào)用實(shí)例詳解

    nodejs中函數(shù)的調(diào)用實(shí)例詳解

    本文通過實(shí)例代碼給大家介紹了nodejs函數(shù)的調(diào)用,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-10-10
  • Node.js實(shí)現(xiàn)簡(jiǎn)單的爬取的示例代碼

    Node.js實(shí)現(xiàn)簡(jiǎn)單的爬取的示例代碼

    這篇文章主要介紹了Node.js實(shí)現(xiàn)簡(jiǎn)單的爬取的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • node.js中的fs.chownSync方法使用說明

    node.js中的fs.chownSync方法使用說明

    這篇文章主要介紹了node.js中的fs.chownSync方法使用說明,本文介紹了fs.chownSync的方法說明、語法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • node.js從前端到全棧的必經(jīng)之路

    node.js從前端到全棧的必經(jīng)之路

    這篇文章主要介紹了一下什么是node,以及node環(huán)境配置,之后我們就將開始深入去學(xué)習(xí)node了,感興趣的小伙伴可以深入了解閱讀一下
    2023-03-03
  • Nginx設(shè)置為Node.js的前端服務(wù)器方法總結(jié)

    Nginx設(shè)置為Node.js的前端服務(wù)器方法總結(jié)

    在本篇文章中小編給大家分享了關(guān)于Nginx設(shè)置為Node.js的前端服務(wù)器的方法和實(shí)例,需要的朋友們學(xué)習(xí)下。
    2019-03-03
  • npm鏡像源證書過期的問題解決

    npm鏡像源證書過期的問題解決

    因?yàn)閚pm官方鏡像在國(guó)內(nèi)訪問很慢,我們基本上都會(huì)選擇切換到國(guó)內(nèi)的一些npm鏡像,本文主要介紹了npm鏡像源證書過期的問題解決,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-07-07
  • node的proxy-server使用詳解

    node的proxy-server使用詳解

    本文主要介紹了node的proxy-server使用詳解,主要介紹代理服務(wù)器的API基本使用流程和思路,以及代理服務(wù)器實(shí)例的API基本使用流程和思路,感興趣的可以了解一下
    2023-12-12

最新評(píng)論