1. 創建多進程的模塊
1.1 child_process
1.2 cluster
2. 創建多進程的方法
2.1 child_process有4種方法:
1. spawn: 創建子進程,執行非node程序,執行結果以流形式返回
2. execFile: 創建子進程,執行非node程序,執行結果以回調返回
3. exec: 創建子進程,執行shell命令,執行結果以回調返回,可以直接執行一串shell命令
4. fork: 創建子進程,執行node程序,執行結果以流返回
2.2 cluster有1種方法:
cluster.fork:創建一個子進程
3. nodejs多進程模型
nodejs的多進程是master-work模式,一個主進程中,創建出多個子進程
4. 進程間消息傳遞
通過on('message')監聽和send分發
5. 多個work監聽同一個端口
nodejs中的多個work進程可以同時監聽同一個端口。具體實現方式,child_process和cluster有區別。
5.1 child_process方式
child_process通常在master進程中創建socket或server,通過send方法將socket或server,發送到worker進程,在worker進程中同時監聽一個端口
5.2 cluster方式
cluster通過cluster.isMaster和cluster.isWorker來區分主進程和worker進程,在worker進程中,可以直接啟動server,來監聽同一個端口
cluster主要是提供了對多個子進程的管理,子進程的創建、退出和重啟,可以方便的進行。