當前位置:成語大全網 - 書法字典 - Nodejs實現多進程(集群模式)

Nodejs實現多進程(集群模式)

nodejs的主進程是單線程的,但它有壹個多線程的處理方案(更準備是多進程方案),即主進程啟動不同的子進程,主進程接收所有請求後分配給其他不同的Nodejs子進程進行處理。

它通常有兩種實現方式:

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

您可以看到啟動後,桌面上會生成壹個管道和壹個錯誤日誌: