node.js 比 nginx 還要快。那么為什么我們不都用 node.js 呢?為什么它的性能這么高?有沒(méi)有比 node.js 性能更高的美國(guó)服務(wù)器系統(tǒng)?
Nginx最主要的功能是反向代理,負(fù)載均衡,是為其他web server服務(wù)的。而node.js一般是作為web server使用的,兩者的用途不一樣,兩者的性能比較意義不大。
Nginx因?yàn)槠涔δ芎?jiǎn)單,沒(méi)有太復(fù)雜的邏輯,主要解決的I/O (socket)的資源占用(內(nèi)存,線程)而出名的,它的改進(jìn)對(duì)比對(duì)象應(yīng)該是apache httpd與IIS。
node.js基于javascript引擎,是看中了javascript引擎本身沒(méi)有設(shè)計(jì)I/O庫(kù),從而可以在上面設(shè)計(jì)基于事件的異步I/O。Web應(yīng)用最大的瓶頸在于I/O,node.js的事件異步I/O設(shè)計(jì)帶來(lái)的高的吞吐量,同樣的資源下能處理更多的請(qǐng)求。
但node.js的性能不是最高的,因?yàn)閖avascript引擎的關(guān)系,node.js默認(rèn)是單線程,一個(gè)node.js應(yīng)用無(wú)法利用多核資源。不過(guò)有第三方庫(kù)提供多線程支持,但不是無(wú)縫的。
node.js是解決I/O瓶頸的(相對(duì)于傳統(tǒng)技術(shù),同步阻塞調(diào)用浪費(fèi)線程), 它并沒(méi)有提高I/O速度,只是資源調(diào)度更高效。如果I/O速度不解決,node.js只能說(shuō)能同時(shí)處理好多request,但每個(gè)request的響應(yīng)時(shí)間還是那么長(zhǎng),甚至更長(zhǎng)。
由于它是單線程,復(fù)雜一點(diǎn)的javascript運(yùn)算可能導(dǎo)致整個(gè)web server掛住,所以node.js不適合web server中含有復(fù)雜計(jì)算的。
現(xiàn)如今不少美國(guó)視頻網(wǎng)站的站長(zhǎng)都開(kāi)始使用輕量級(jí)的node.js語(yǔ)言編寫(xiě)的視頻網(wǎng)站后臺(tái),最大利用美國(guó)服務(wù)器的高性能
USA-IDC提供美國(guó)服務(wù)器租用,性能穩(wěn)定快速,全美最低延遲,全程運(yùn)維24小時(shí)在線,秒級(jí)回復(fù),歡迎廣大用戶(hù)聯(lián)系24小時(shí)在線客服。