Node.js - 優(yōu)劣

優(yōu)勢

  • 高并發(fā),也即 I/O 密集
    • 單進程使得程序不會額外分配資源給其他進程,線程管理本就很復(fù)雜,另外CPU在處理任務(wù)的時候也避免了切換上下文/線程帶來的消耗,具體可參考:http://iamzhongyong.iteye.com/blog/1895728
  • 非阻塞IO
    • 開發(fā)中可能遇到硬盤,數(shù)據(jù)庫,網(wǎng)絡(luò)請求等阻塞,使用異步處理能使程序更流暢。
  • 適合前端JS人員開發(fā)后臺
    • NodeJS雖然跟JS完全不是一碼事,但是設(shè)計者將語法兼容JS,故開發(fā)NodeJS將會跟開發(fā)JS的難度差不多,另外NodeJS用的虛擬機(V8)可以使用最新的ES6,因為部署在服務(wù)器端,不需要瀏覽器支持。
  • 輕量級
    • Node進程消耗的資源更少,在同種功能下的Tomcat跟Node,Node占用的內(nèi)存更少。
  • 與NoSQL結(jié)合
    • 像Redis , MongoDB這種NoSQL與NodeJS結(jié)合開發(fā),使應(yīng)用更快捷,更輕量級,MongoDB的管理和查詢語言都是JavaScript。

劣勢

  • 不適合CPU密集型應(yīng)用
    • 單線程導(dǎo)致只能使用單核,導(dǎo)致CPU的處理能力更弱。
  • 可靠性低
    • 一個線程導(dǎo)致如果程序某個環(huán)節(jié)崩潰,整個系統(tǒng)都會崩潰。
  • 開源組件庫質(zhì)量參差不齊,更新快,向下不兼容。
  • Debug不方便,錯誤沒有stack trace。

適用場景

  • RESTful API
  • 高并發(fā)、I/O密集、少量業(yè)務(wù)邏輯

####### 參考自:《Node.js實戰(zhàn)》- Mike Cantlon 等著

上一篇 下一篇
- Node.js 第一步
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 這是一個移動端工程師涉足前端和后端開發(fā)的學(xué)習(xí)筆記,如有錯誤或理解不到位的地方,萬望指正。 Node.js 是什么 ...
    單純的土豆閱讀 1,370評論 2 17
  • 使用了這么久的Node.js,之前只是知道它怎么使用,并沒有去深入的了解它的機制,那么今天就來聊聊它的使用機制優(yōu)缺...
    小m_up閱讀 1,053評論 2 8
  • # 模塊機制 node采用模塊化結(jié)構(gòu),按照CommonJS規(guī)范定義和使用模塊,模塊與文件是一一對應(yīng)關(guān)系,即加載一個...
    RichRand閱讀 2,736評論 0 3
  • 域名就是網(wǎng)址,就是個人網(wǎng)站或企事業(yè)單位和公司在因特網(wǎng)上的名稱。 例如,yesky.com就是我們網(wǎng)站的域名。 域名...
    必須這么打閱讀 151評論 0 0
  • 你已經(jīng)走了十年 這十年 說長不長 你還在我的腦海里面 說短不短 墳頭上的野草死去 又新生 我看見一只血紅色的蜻蜓 ...
    難以接近閱讀 247評論 0 3

友情鏈接更多精彩內(nèi)容