為什么要用node.js它又有什么優(yōu)勢(shì)呢?一個(gè)新的技術(shù)被大家喜愛那么它就必然有它的優(yōu)勢(shì),那么下面我們就來(lái)簡(jiǎn)單把它和php做一個(gè)對(duì)比
1 . Node.js 他用的是JavaScript引擎,那么注定它是單線程 ,使用異步方法開辟多個(gè)任務(wù),無(wú)需像php等待上個(gè)任務(wù)線程使用結(jié)束之后給下個(gè)使用,
PHP也是單線程但是它借用Apache服務(wù)器提供多線程服務(wù)
2 . 高并發(fā),大數(shù)據(jù)量怎么處理:
php : 優(yōu)化sql ,用組件,用緩存,為了讓線程盡快結(jié)束,進(jìn)行下一次任務(wù)
node:?jiǎn)尉€程 、異步、事件驅(qū)動(dòng)
下面是他們處理事件,
php上下銜接依次執(zhí)行,
node中因?yàn)檫\(yùn)行速度很快并不會(huì)等待,所以如果后面用到前面返回的結(jié)果,就需要把后面的封裝起來(lái),作為一個(gè)回調(diào)函數(shù)執(zhí)行
node.js vs php
優(yōu)點(diǎn):
性能高(運(yùn)行機(jī)制問題)
開發(fā)效率高(省不少優(yōu)化的事)
應(yīng)用范圍廣(可以開發(fā)桌面系統(tǒng),electron框架)
缺點(diǎn):
新、人少
中間件少
IDE不完善
node.js的劣勢(shì)和解決方案
1 默認(rèn)不支持多核,但可以用cluster解決
2 默認(rèn)不支持服務(wù)器集群,node-http-proxy可以解決
3 使用nginx做負(fù)載均衡,靜態(tài)的由nginx處理,動(dòng)態(tài)的有node.js處理
4 forever或node-cluster實(shí)現(xiàn)災(zāi)難恢復(fù)
下面是 一個(gè)數(shù)據(jù)測(cè)試
請(qǐng)求-->隨機(jī)創(chuàng)建內(nèi)容是20k字符的文檔 -->讀取文檔 -->輸出
延伸閱讀
學(xué)習(xí)是年輕人改變自己的最好方式