亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        Node.js服務(wù)器技術(shù)初探

        2014-06-20 13:35:02駱文亮
        無(wú)線互聯(lián)科技 2014年3期

        駱文亮

        摘 要:通過(guò)對(duì)Node.js技術(shù)的簡(jiǎn)介,引出Node.js的基本概念、功能和它能解決的問(wèn)題以及Node.js的應(yīng)用場(chǎng)景。

        關(guān)鍵詞:Java;JSON;Javascript

        1 引言

        從2009年Node.js的誕生至今,已有近5年時(shí)間,其成長(zhǎng)速度令人咂舌。國(guó)外大量的社區(qū)對(duì)Node.js的前景充分肯定,各種實(shí)際應(yīng)用層出不窮。而國(guó)內(nèi)這方面發(fā)展相對(duì)緩慢,Node.js中文社區(qū)也活躍著很多開(kāi)發(fā)者。本文通過(guò)對(duì)Node.js的介紹,提出Node.js的基本概念、功能和實(shí)際應(yīng)用場(chǎng)合。希望對(duì)開(kāi)發(fā)人員有所幫助。

        2 Node.js簡(jiǎn)介

        2.1 Google V8 JavaScript引擎

        Google公司著名的瀏覽器Chrome瀏覽器就是基于Google V8 JavaScript引擎的高速瀏覽器。V8是由丹麥Google開(kāi)發(fā)的開(kāi)源JavaScript引擎。V8在執(zhí)行之前將JavaScript編譯成了機(jī)器碼,而非位元組碼或是直譯它,以此提升效能。更進(jìn)一步,使用了如內(nèi)聯(lián)緩存(inline caching)等方法來(lái)提高性能。有了這些功能,JavaScript程序與V8引擎的速度媲美二進(jìn)制編譯。

        為了縮短由垃圾收集造成的停頓,V8使用stop-the-world, generational, accurate的垃圾收集器。在執(zhí)行回收之時(shí)會(huì)暫時(shí)中斷程序的執(zhí)行,而且只處理物件堆疊。還會(huì)收集內(nèi)存內(nèi)所有物件的指標(biāo),可以避免內(nèi)存溢位的情況。

        2.2 Node.js基本概念

        Node.js是服務(wù)器端的JavaScript運(yùn)行環(huán)境,它具有無(wú)阻塞(non-blocking)和事件驅(qū)動(dòng)(event-driven)等的特色,Node.js采用V8引擎,同樣,Node.js實(shí)現(xiàn)了類似Apache和 nginx的web服務(wù),讓你可以通過(guò)它來(lái)搭建基于JavaScript的 Web App。

        Node.js是一個(gè)可以快速構(gòu)建網(wǎng)絡(luò)服務(wù)及應(yīng)用的平臺(tái),它的構(gòu)建是基于Chrome's JavaScript runtime,它可以很好地工作與非瀏覽器環(huán)境。總之,Node.js是一個(gè)脫離了瀏覽器的Javascript。

        3 Node.js功能

        3.1 Node.js解決的問(wèn)題

        在很多情況下,服務(wù)器端的性能瓶頸主要在于大量的數(shù)據(jù)請(qǐng)求讓服務(wù)器疲于應(yīng)付,造成大量的阻塞。Node.JS的誕生就是用來(lái)解決服務(wù)端阻塞問(wèn)題。例如,當(dāng)客戶端通過(guò)一句查詢語(yǔ)句來(lái)查詢一些信息時(shí),程序進(jìn)程往往只是在等待結(jié)果的返回,浪費(fèi)了大量的時(shí)間不說(shuō),還這就造成了進(jìn)程的阻塞。在對(duì)于高并發(fā),I/O密集型的WebAPP中,一方面服務(wù)器讓進(jìn)程很長(zhǎng)時(shí)間處于等待狀態(tài),另一方面為了應(yīng)付新的請(qǐng)求不斷的增加新的進(jìn)程。這樣的浪費(fèi)會(huì)導(dǎo)致系統(tǒng)的實(shí)際性能遠(yuǎn)遠(yuǎn)小于它能夠支撐性能,這個(gè)就是系統(tǒng)的瓶頸,而且這樣的系統(tǒng)也特別容易被黑客利用慢鏈接攻擊。

        3.2 Node.js解決問(wèn)題的基本思路

        Node.js解決阻塞問(wèn)題的思路是,建立一種事件機(jī)制,發(fā)起查詢請(qǐng)求之后,立即將進(jìn)程交出,當(dāng)數(shù)據(jù)返回后觸發(fā)事件,再繼續(xù)處理數(shù)據(jù)。

        要達(dá)到上述目的,需要語(yǔ)言能夠提供一套高效的異步事件調(diào)度機(jī)制。而主要用于處理瀏覽器端的各種交互事件的JavaScript相對(duì)于其他語(yǔ)言,至少有兩個(gè)關(guān)鍵點(diǎn)特別適合完成這個(gè)任務(wù):

        1)JavaScript是一種函數(shù)式編程語(yǔ)言,函數(shù)編程語(yǔ)言最重要的數(shù)學(xué)基礎(chǔ)是λ演算(lambda calculus)——即函數(shù)可以接受函數(shù)當(dāng)作輸入(參數(shù))和輸出(返回值)。

        2)JavaScript支持“閉包”。在復(fù)雜的應(yīng)用中,一定會(huì)遇到這類場(chǎng)景。即在函數(shù)運(yùn)行時(shí)需要訪問(wèn)函數(shù)定義時(shí)的上下文數(shù)據(jù)。而在異步編程中,函數(shù)的定義和運(yùn)行又分處不同的時(shí)間段,那么保持上下文的問(wèn)題變得更加突出。JavaScript支持的“閉包”能夠較好地處理這個(gè)問(wèn)題。

        4 Node.js應(yīng)用場(chǎng)景

        4.1 I/O密集型

        在I/O密集型的應(yīng)用場(chǎng)景中,Node,js的并行I/O能力,能夠非常有效地利用的硬件資源,從而提供更多好的服務(wù)。I/O密集的優(yōu)勢(shì)主要在于Node利用事件循環(huán)的處理能力,而不是啟動(dòng)每一個(gè)線程為每一個(gè)請(qǐng)求服務(wù),資源占用極少。

        4.2 不擅長(zhǎng)CPU密集型

        最顯而易見(jiàn)的情況就是是那種CPU使用率高同時(shí)I/O操作小的。所以如果你打算寫一個(gè)視頻編碼軟件,人工智能軟件或者類似的CPU使用率高的軟件,請(qǐng)不要用node.js。

        4.3 分布式應(yīng)用

        淘寶的數(shù)據(jù)平臺(tái)是國(guó)內(nèi)對(duì)Node的分布式應(yīng)用是一個(gè)典型的例子。分布式應(yīng)用意味著對(duì)可伸縮性的要求非常高。數(shù)據(jù)平臺(tái)通常要在一個(gè)數(shù)據(jù)庫(kù)集群中去尋找需要的數(shù)據(jù)。這個(gè)案例其實(shí)也是高效利用并行I/O的例子。Node高效利用并行I/O的過(guò)程,也是高效使用數(shù)據(jù)庫(kù)的過(guò)程。對(duì)于Node,這個(gè)行為只是一次普通的I/O。對(duì)于數(shù)據(jù)庫(kù)而言,卻是一次復(fù)雜的計(jì)算,所以也是進(jìn)而充分壓榨硬件資源的過(guò)程。

        5 結(jié)束語(yǔ)

        從本文可以看出,Node完成了它提供高度可伸縮服務(wù)器的目標(biāo)。它使用了Google的一個(gè)非??焖俚腏avaScript引擎,即V8引擎。它使用一個(gè)事件驅(qū)動(dòng)設(shè)計(jì)來(lái)保持代碼最小且易于閱讀。所有這些因素促成了Node的理想目標(biāo),即編寫一個(gè)高度可伸縮的解決方案變得比較容易。

        [參考文獻(xiàn)]

        [1]Mike Cantelon,TJ Holowaychuk.Node.js in Action 2011.

        [2]http://limu.iteye.com/blog/1013223.,2013-01-17.

        [3]http://cnodejs.org/topic/4f97d5b8407edba21.2013-04-23.

        [4]樸靈.深入淺出Node.js.人民郵電出版社.

        日日婷婷夜日日天干| 中文字幕亚洲永久精品| 日韩免费精品在线观看| 国产v片在线播放免费无码| 毛片在线播放a| 91精品91久久久久久| 国产亚洲精品在线播放| 妺妺窝人体色www婷婷| 亚洲av无码av制服丝袜在线 | 一区二区三区亚洲免费| 日韩精品无码一区二区三区四区| 国产在线视频一区二区三区| 色www亚洲| 在线视频精品少白免费观看| 中文字幕人妻丝袜成熟乱| 青青久在线视频免费观看| 中文字幕精品一二三区| 中文字幕人妻被公喝醉在线| 天天做天天摸天天爽天天爱 | 久久精品免费中文字幕| 中文日韩亚洲欧美制服| a级福利毛片| 91久久大香伊蕉在人线国产| 少妇久久久久久人妻无码| 成人h动漫精品一区二区| 欧美亚洲国产丝袜在线| 在线国人免费视频播放| 97精品超碰一区二区三区| 精品亚洲日韩国产一二三区亚洲| 亚洲大片一区二区三区四区| 色欲一区二区三区精品a片| 国产乱人伦在线播放| 国产精品国产自线拍免费| 亚洲成人精品在线一区二区| 香港台湾经典三级a视频| 日韩久久一级毛片| av手机天堂在线观看| 大肉大捧一进一出好爽视频动漫 | 日本视频中文字幕一区在线| 亚洲一区视频中文字幕| 久久久国产精品va麻豆|