NodeJS多核多執行緒的解決方案 -- pm2 之一
阿新 • • 發佈:2019-02-06
寫在前面
這兩年做了很多Web的前後端開發,也有一些經驗,所以在這裡分享一下。很久不寫部落格了,因為很多東西都用evernote來記錄了,方便快捷。
然後業餘我也做了一個單頁網站,基於AngularJS+NodeJS的,伺服器端,自然就是用到了多開程序的解決方案。
NodeJS的Cluster
其實,用NodeJS,首先會碰到的就是,NodeJS是單執行緒的工作方式,實際上工作中,都是用Django來做這些活,Python的能力還是足夠強大。其實,NodeJS很早就支援了Cluster模式,這個就是同時開啟多個程序來監聽同一個埠,分發http請求處理,或許大家有疑問,就是埠複用的問題,改天再說。
先說其他方案
NodeJS的這個問題有很多種解決方案,比如supervisord,forever等等,還有就是最原始的寫一個shell指令碼,同時起多個埠,然後用nginx逆向代理和分發對映到每一個埠。如果大家有需要,留言吧,我再開個帖子說說。
大家可以搜一下這幾個東西的比較,我用下來,感覺都不如我現在要講的pm2。
pm2簡介
官網:http://pm2.keymetrics.io/
github:https://github.com/Unitech/pm2