預備知識
網站設計制作、成都網站制作的開發,更需要了解用戶,從用戶角度來建設網站,獲得較好的用戶體驗。創新互聯多年互聯網經驗,見的多,溝通容易、能幫助客戶提出的運營建議。作為成都一家網絡公司,打造的就是網站建設產品直銷的概念。選擇創新互聯,不只是建站,我們把建站作為產品,不斷的更新、完善,讓每位來訪用戶感受到浩方產品的價值服務。在如今機器的CPU都是多核的背景下,Node的單線程設計已經沒法更充分的"壓榨"機器性能了。所以從v0.8開始,Node新增了一個內置模塊——“cluster”,故名思議,它可以通過一個父進程管理一坨子進程的方式來實現集群的功能。
學習cluster之前,需要了解process相關的知識,如果不了解的話建議先閱讀process模塊、child_process模塊。
cluster借助child_process模塊的fork()方法來創建子進程,通過fork方式創建的子進程與父進程之間建立了IPC通道,支持雙向通信。
cluster模塊最早出現在node.js v0.8版本中
為什么會存在cluster模塊?
Node.js是單線程的,那么如果希望利用服務器的多核的資源的話,就應該多創建幾個進程,由多個進程共同提供服務。如果直接采用下列方式啟動多個服務的話,會提示端口占用。
const http = require('http'); http.createServer((req, res) => { res.writeHead(200); res.end('hello world\n'); }).listen(8000); // 啟動第一個服務 node index.js & // 啟動第二個服務 node index.js & throw er; // Unhandled 'error' event ^ Error: listen EADDRINUSE :::8000 at Server.setupListenHandle [as _listen2] (net.js:1330:14) at listenInCluster (net.js:1378:12) at Server.listen (net.js:1465:7) at Object.<anonymous> (/Users/xiji/workspace/learn/node-basic/cluster/simple.js:5:4) at Module._compile (internal/modules/cjs/loader.js:702:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:713:10) at Module.load (internal/modules/cjs/loader.js:612:32) at tryModuleLoad (internal/modules/cjs/loader.js:551:12) at Function.Module._load (internal/modules/cjs/loader.js:543:3) at Function.Module.runMain (internal/modules/cjs/loader.js:744:10)
網頁標題:Node.js中的cluster模塊深入解讀-創新互聯
鏈接URL:http://vcdvsql.cn/article24/ieije.html
成都網站建設公司_創新互聯,為您提供網頁設計公司、企業建站、虛擬主機、小程序開發、Google、營銷型網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯