Node.js的優勢和缺點(轉載)

著做權歸做者全部。
商業轉載請聯繫做者得到受權,非商業轉載請註明出處。
做者:FengqiAsia
連接:http://www.zhihu.com/question/19653241/answer/15993549
來源:知乎

要講清楚這個問題,先講講整個Web應用程序架構(包括流量、處理器速度和內存速度)中的瓶頸。瓶頸在於服務器可以處理的併發鏈接的最大數量。Node.js解決這個問題的方法是:更改鏈接到服務器的方式。每一個鏈接發射一個在Node.js引擎的進程中運行的事件,而不是爲每一個鏈接生成一個新的OS線程(併爲其分配一些配套內存)。Node.js不會死鎖,由於它根本不容許使用鎖,它不會直接阻塞 I/O 調用。Node.js還宣稱,運行它的服務器能支持數萬個併發鏈接。 Node自己運行V8 JavaScript。V8 JavaScript引擎是Google用於其Chrome瀏覽器的底層JavaScript引擎。Google使用V8建立了一個用C++編寫的超快解釋器,該解釋器擁有另外一個獨特特徵:您能夠下載該引擎並將其嵌入任何應用程序。V8 JavaScript引擎並不只限於在一個瀏覽器中運行。所以,Node.js實際上會使用Google編寫的V8 JavaScript引擎,並將其重建爲可在服務器上使用。 Node.js優勢: 一、採用事件驅動、異步編程,爲網絡服務而設計。其實Javascript的匿名函數和閉包特性很是適合事件驅動、異步編程。並且JavaScript也簡單易學,不少前端設計人員能夠很快上手作後端設計。 二、Node.js非阻塞模式的IO處理給Node.js帶來在相對低系統資源耗用下的高性能與出衆的負載能力,很是適合用做依賴其它IO資源的中間層服務。三、Node.js輕量高效,能夠認爲是數據密集型分佈式部署環境下的實時應用系統的完美解決方案。Node很是適合以下狀況:在響應客戶端以前,您預計可能有很高的流量,但所需的服務器端邏輯和處理不必定不少。 Node.js缺點: 一、可靠性低 二、單進程,單線程,只支持單核CPU,不能充分的利用多核CPU服務器。一旦這個進程崩掉,那麼整個web服務就崩掉了。
相關文章
相關標籤/搜索