本篇文章要為大家介紹一些Nodejs的應用程式場景。有一定的參考價值,有需要的朋友可以參考一下,希望對大家有幫助。
優點:支援多執行緒並發
缺點:阻塞
#執行緒是可以獨立運行的最小的CPU 單位,可以在同一個進程裡並發運行,共享該進程下的記憶體位址空間。
當不同的執行緒需要佔用同一個變數時,根據先到先得的原則,先到的執行緒在運作時,後來的執行緒只能在旁邊等待,也就是加入到了阻塞排隊序列。就造成了線程阻塞。
類似場景:銀行櫃檯辦理業務
優點:高並發(最重要的優點)、適合I/O 密集型應用
缺點:
#不適合CPU密集型應用(CPU密集型應用程式為Node帶來的挑戰主要是:由於JavaScript單執行緒的原因,如果長時間運行的運算(例如大循環),將會導致CPU 時間片無法釋放,使得後續I/O 無法發起)
只支援單核心CPU,不能充分利用CPU
可靠性低,一旦程式碼某個環節崩潰,整個系統都會崩潰
原因:單一進程、單執行緒
解決方案:
(1)Nnigx 反向代理,負載平衡,開多個進程,綁定多個端口;
(2)開多個進程監聽同一個端口,使用cluster模組
(3)線上使用PM2 管理進程,出現問題自動重啟項目
#Debug 不方便,錯誤沒有stack trace
nodejs 教學》】
NodeJS 不是沒有阻塞,而是阻塞不發生在後續回呼的流程,而會發生在 NodeJS 本身對邏輯的計算與處理。 NodeJS 它的所有 I/O、網路通訊等比較耗時的操作,都可以交給 worker threads 執行再回調,所以很快。但 CPU 的正常操作,它只能自己操作。 類似場景:排隊點餐後叫號取餐。程式設計影片! !
以上是Nodejs可以套用在那些場景?的詳細內容。更多資訊請關注PHP中文網其他相關文章!