當前位置:編程學習大全網 - 編程軟體 - nodejs實現多進程(cluster 模式)

nodejs實現多進程(cluster 模式)

Nodejs的主進程是單線程的,但它有多線程處理方案(更準備來說是多進程方案),即主進程開啟不同的子進程,主進程接收所有請求,然後將分發給其它不同的nodejs子進程處理。

它壹般有兩種實現:

Nodejs 的 cluster模式 用的就是第壹種實現,它使用壹個主線程 master 和多個子線程 worker ,形成壹個集群,通過主線程來向子線程分發請求。cluster 實現了對 child_process 的封裝,通過 fork 方法創建子進程的方式實現了多進程模型。

http 和 cluster 、 process 都是 nodejs 的內置模塊,不需要額外安裝

實現過程大概是這樣的: cluster 模塊應用 child_process 來創建子進程,子進程通過復寫掉 cluster._getServer 方法,從而在 server.listen 來保證只有主進程監聽端口,主子進程通過 IPC 進行通信,其次主進程根據平臺或者協議不同,應用兩種不同模塊( round_robin_handle.js 和 shared_handle.js )進行請求分發給子進程處理。

PM2是後臺進程管理器,是多進程方案的壹個成熟應用,可以幫助管理和保持應用程序在線。

全局安裝: npm install pm2@latest -g

它的使用也非常簡單:

PM2對nodejs應用,可以根據系統自動實現負載均衡: pm2 start http-server.js -i max

我們肯定不想每次啟動時,都要手動輸入壹堆指令,所以我們可以將這些配置統壹使用配置文件來管理,註意js文件名必須是 xxx.config.js ,我這裏用 ecosystem.config.js :

apps 數組中,可以放置多個對象,對應多個文件執行不同的配置

執行配置: pm2 start ecosystem.config.js --env dev

可以看到在啟動後,桌面上生成了流水和錯誤日誌:

  • 上一篇:幫忙編程,用C語言編。
  • 下一篇:松江消防主機怎樣測試是否有信號輸出信號到crt電腦
  • copyright 2024編程學習大全網