它通常有兩種實現方式:
Nodejs的集群模式是第壹個實現,它使用壹個主線程master和多個子線程worker組成壹個集群,並通過主線程將請求分發到子線程。Cluster實現了child_process的封裝,並通過fork方法創建子流程來實現多流程模型。
Http、cluster和process都是nodejs的內置模塊,不需要額外安裝。
實現過程大概是這樣的:集群模塊使用child_process創建子流程,子流程復制集群。_getServer方法,以便只有主進程偵聽server.listen中的端口,並且主進程通過IPC進行通信。其次,根據平臺或協議的不同,主要流程也不同。兩個不同的模塊(round_robin_handle.js和shared_handle.js)用於將請求分發到子進程。
PM2是後臺進程管理器和多進程方案的成熟應用程序,可以幫助管理和保持應用程序在線。
全局安裝:npm安裝pm2@latest -g
它的使用也很簡單:
對nodejs應用PM2可以根據系統自動實現負載平衡:pm2 start http-server.js -i max
我們當然不希望每次啟動時都手動輸入壹堆指令,因此我們可以使用配置文件來管理這些配置。註意js的文件名必須是xxx.config.js,我在這裏使用的是ecosystem.config.js:
在應用程序陣列中,您可以放置多個對象並為多個文件執行不同的配置。
執行配置:pm 2 start ecosystem . config . js-env dev
您可以看到啟動後,桌面上會生成壹個管道和壹個錯誤日誌: