您現(xiàn)在的位置:首頁 > 科技 > 正文

“雙十一”流量大考過關(guān) 流計算功不可沒 什么是流計算?

時間:2019-11-14 10:17:57    來源:科技日報    

如何扛住流量“洪峰”,是每年“雙十一”的技術(shù)大考。隨著流量的飆升,這一大考無疑變得越來越難。

“雙十一”剛過,各大電商紛紛公布當(dāng)日戰(zhàn)績。從目前公布的數(shù)據(jù)不難看出,今年“雙十一”的訂單創(chuàng)建量峰值創(chuàng)下新高,單日數(shù)據(jù)處理量紀(jì)錄也再次被刷新。

“雙十一”的數(shù)據(jù)量不僅大,還會實時變化??梢哉f,每個購物數(shù)據(jù)都是個性化的、動態(tài)的,完成處理它們的工作,需要有強(qiáng)大的計算能力作為支撐。

“今年的數(shù)據(jù)處理工作,除了批處理(對數(shù)據(jù)進(jìn)行批量處理)外,還有流處理,就是實時處理數(shù)據(jù)。龐大的交易數(shù)據(jù)每分鐘、每秒鐘都在變,它們并不是從數(shù)據(jù)庫里面統(tǒng)計出來的,而是系統(tǒng)自動一層層把它們匯集上來的。”阿里巴巴集團(tuán)首席技術(shù)官張建鋒表示。他口中的“流處理”就是流計算,即實時計算。對于扛住“雙十一”流量“洪峰”,它功不可沒。

那么,什么是流計算?它是如何抗住“雙十一”流量“洪峰”的?對此,科技日報記者采訪了業(yè)內(nèi)專家。

以內(nèi)存取代硬盤實現(xiàn)快速處理

北京理工大學(xué)計算機(jī)學(xué)院副院長、教授劉馳在接受科技日報記者采訪時解釋道,流計算指當(dāng)一條數(shù)據(jù)被處理完后,立刻被序列化到內(nèi)存中,然后通過網(wǎng)絡(luò)傳輸?shù)较乱粋€節(jié)點,由下一個節(jié)點繼續(xù)處理。“這種流式處理技術(shù),是以內(nèi)存取代硬盤的方式來實現(xiàn)數(shù)據(jù)快速處理,這是流計算之所以能夠高效處理數(shù)據(jù)的根本原因。”他表示。

據(jù)劉馳介紹,流計算具有高性能、海量式、實時性、分布式、易用性、可靠性等多項優(yōu)勢,主要的應(yīng)用方向有,對金融與科學(xué)計算中的數(shù)據(jù)進(jìn)行快速運算和分析;對存在于社交網(wǎng)站、電子郵件、視頻、電話記錄、電子感應(yīng)器中的數(shù)字格式信息流進(jìn)行快速處理并反饋等。

“流式處理可被用于兩種不同的計算場景:事件流和持續(xù)計算。”劉馳介紹道,在事件流場景,系統(tǒng)會持續(xù)產(chǎn)生大量的數(shù)據(jù),這類數(shù)據(jù)最早出現(xiàn)在銀行和股票交易領(lǐng)域,也會在互聯(lián)網(wǎng)監(jiān)控、無線通信等領(lǐng)域出現(xiàn)。這些領(lǐng)域的相關(guān)業(yè)務(wù),需要流計算技術(shù)以近乎實時的方式對數(shù)據(jù)流進(jìn)行復(fù)雜分析。

“而在持續(xù)計算場景,比如大型網(wǎng)站,流計算技術(shù)可以動態(tài)實時地刷新用戶訪問數(shù)據(jù),展示網(wǎng)站實時流量的變化情況,分析每天各小時的流量和用戶分布情況。一些需要實時處理數(shù)據(jù)的場景也能應(yīng)用到流計算技術(shù),比如對根據(jù)用戶行為產(chǎn)生的日志文件進(jìn)行實時分析,對用戶進(jìn)行商品的實時推薦等。”劉馳介紹道。

實時采集、實時計算、實時查詢

劉馳向記者介紹道,流計算的處理流程一般包含三個階段:數(shù)據(jù)實時采集、數(shù)據(jù)實時計算和實時查詢服務(wù)。

首先,后臺工作人員會用實時數(shù)據(jù)集成工具,將數(shù)據(jù)實時傳輸?shù)搅魇綌?shù)據(jù)存儲系統(tǒng)。具體過程是,系統(tǒng)將長時間累積的大量數(shù)據(jù),平攤到每個計算時間節(jié)點,數(shù)據(jù)會被不停地進(jìn)行小批量實時傳輸。此時,數(shù)據(jù)將會被源源不斷地寫入流數(shù)據(jù)存儲系統(tǒng),不需要預(yù)先加載的過程。同時,在此過程中,數(shù)據(jù)是持續(xù)流動的,在計算完成后就會被立刻丟棄。

然后,不同于批量計算等待數(shù)據(jù)集成全部完成后才啟動計算作業(yè),流式計算作業(yè)是一種常駐計算服務(wù),一旦啟動將一直處于等待事件觸發(fā)的狀態(tài),即一有小批量數(shù)據(jù)進(jìn)入流式數(shù)據(jù)存儲系統(tǒng),流計算系統(tǒng)就會立刻計算并得出結(jié)果。“同時,部分電商平臺的流計算團(tuán)隊,還使用了增量計算模型,將大批量數(shù)據(jù)分批進(jìn)行增量計算,進(jìn)一步減少單次運算規(guī)模并有效降低整體運算時延。”劉馳說。

最后,采用數(shù)據(jù)批處理方式,通常需要等待數(shù)據(jù)計算結(jié)果得出后,才能批量將數(shù)據(jù)傳輸?shù)皆诰€系統(tǒng)。而流式處理方式可在每次小批量數(shù)據(jù)計算工作完成后,就立刻將計算結(jié)果寫入在線系統(tǒng)。“這樣無需等待全部數(shù)據(jù)計算工作完成,我們就可在流計算數(shù)據(jù)查詢系統(tǒng)中,查詢到在線系統(tǒng)的數(shù)據(jù)處理結(jié)果。技術(shù)人員也可將實時結(jié)果發(fā)送給可視化系統(tǒng),以實現(xiàn)計算結(jié)果的實時化展示。”劉馳說。

技術(shù)雖強(qiáng)大但仍存在短板

不過,劉馳表示,流計算雖然強(qiáng)大,也存在技術(shù)短板。

“如果在系統(tǒng)內(nèi)存不足的情況下,還要滿足多個用戶的數(shù)據(jù)請求,那么每個用戶實際被分到的內(nèi)存就會很少。此時,應(yīng)用流式處理技術(shù)后,由于內(nèi)存需求量增加,系統(tǒng)會把原來分給多個用戶的內(nèi)存資源,全部分給一個用戶。其他需要內(nèi)存的用戶,則會因為沒有內(nèi)存可用,被迫進(jìn)入等待狀態(tài),直到那個占有內(nèi)存資源用戶退出后,其他用戶才能使用內(nèi)存。”劉馳說,同時,實時的計算環(huán)境會由于各種各樣的原因,比如網(wǎng)絡(luò)延時等,導(dǎo)致程序到達(dá)計算節(jié)點的順序出現(xiàn)變化。

“此外,流計算技術(shù)面對的是源源不斷涌入的數(shù)據(jù),而如果還像批處理那樣來計算數(shù)據(jù)的話,就可能會導(dǎo)致計算根本無法結(jié)束,或隨著時間的推移需要保存的數(shù)據(jù)越來越多,給內(nèi)存造成巨大壓力。”劉馳補充道,“數(shù)據(jù)不斷產(chǎn)生,就需要計算持續(xù)進(jìn)行。但計算時間一長,出問題的概率就會大大增加。一旦出現(xiàn)問題,一些在計算過程中緩存下來的數(shù)據(jù)該被怎么長期保存、怎么恢復(fù)就會成為比較大的問題。”(記者 崔 爽)

關(guān)鍵詞: 雙十一流量大考

凡本網(wǎng)注明“XXX(非中國微山網(wǎng))提供”的作品,均轉(zhuǎn)載自其它媒體,轉(zhuǎn)載目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點和其真實性負(fù)責(zé)。

特別關(guān)注