小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

架構(gòu)師接龍:黃冬&鄧毅

 沐哲 2010-01-07

黃東提問嘉賓:

黃冬,多年軟件開發(fā)、系統(tǒng)架構(gòu)、系統(tǒng)運(yùn)營的經(jīng)驗(yàn)。長期關(guān)注高可用性、高可擴(kuò)展性的系統(tǒng)架構(gòu)設(shè)計(jì)。主持設(shè)計(jì)和運(yùn)行過多個(gè)大型高容量產(chǎn)品和系統(tǒng)。是中國FreeBSD、Python社區(qū)的發(fā)起者和積極參與者,也是國內(nèi)啄木鳥(http://www..woodpecker.org.cn)社區(qū)的創(chuàng)始人之一?,F(xiàn)在北京從事系統(tǒng)架構(gòu)咨詢及系統(tǒng)運(yùn)營外包的的創(chuàng)業(yè)。


鄧毅回答嘉賓:

鄧毅,網(wǎng)易有道技術(shù)總監(jiān),負(fù)責(zé)新技術(shù)與應(yīng)用研究團(tuán)隊(duì)的工作,帶領(lǐng)很多有道核心技術(shù)的開發(fā)。清華大學(xué)計(jì)算機(jī)系博士學(xué)位,在模式識別、計(jì)算機(jī)視覺等領(lǐng)域有豐富的研究經(jīng)驗(yàn)。


黃冬:互聯(lián)網(wǎng)在過去的數(shù)年中發(fā)展迅速,交換帶寬已經(jīng)從10M迅速提升到了萬M,而計(jì)算機(jī)的總線、CPU計(jì)算能力出現(xiàn)了很多瓶頸。經(jīng)常會發(fā)現(xiàn)一臺服務(wù)器的帶寬有千M甚至更高,而使用的卻不足,在架構(gòu)上有什么考慮,讓一臺服務(wù)器能更多用起這樣的帶寬來?

鄧毅:網(wǎng)絡(luò)技術(shù)的高速發(fā)展的確使得單臺服務(wù)器的帶寬有了很大的提高,這可以使得一些以前不太好做的事情更容易的實(shí)現(xiàn)。

一方面,對于后臺計(jì)算服務(wù)部分,高速的帶寬使得我們可以把更多的服務(wù)器通過以太網(wǎng)連接起來,進(jìn)行大規(guī)模的分布式運(yùn)算,讓不同的機(jī)器處理大數(shù)據(jù)的不同部分,再通過網(wǎng)絡(luò)把數(shù)據(jù)進(jìn)行匯總,從而得到以前需要大型機(jī)才能獲得的超大規(guī)模的計(jì)算能力,這讓我們可以從海量的數(shù)據(jù)中分析出更加有用的信息。此外,通過網(wǎng)絡(luò),我們可以把多臺機(jī)器聯(lián)合起來組成分布式的存儲系統(tǒng),從而提高系統(tǒng)的存儲容量、訪問帶寬以及可靠性。

另一方面,在前端與用戶直接接觸的部分,由于帶寬的提升、網(wǎng)速的變快,用戶的客戶端程序可以更加頻繁的與服務(wù)器進(jìn)行通訊,傳輸更多的數(shù)據(jù),“云計(jì)算”或者“軟件加服務(wù)”的模式,使得原來單機(jī)服務(wù)無法實(shí)現(xiàn)的功能或者服務(wù)質(zhì)量得以實(shí)現(xiàn)。例如有道的詞典,當(dāng)存在網(wǎng)絡(luò)連接的時(shí)候,客戶端的軟件會把查詢需求發(fā)送到服務(wù)器端,服務(wù)器端可以在一個(gè)非常大的詞庫中進(jìn)行查詢,還可以做一些智能分析的操作,從而在不占用用戶本地資源的情況下,大大提升用戶的體驗(yàn)。另一個(gè)例子是類似“云殺毒”之類的應(yīng)用,通過網(wǎng)絡(luò)把數(shù)據(jù)傳回服務(wù)器進(jìn)行殺毒,也是充分利用當(dāng)今互聯(lián)網(wǎng)的帶寬。


黃冬:作為負(fù)載均衡的一種方式,基于四層、七層的負(fù)載均衡交換在很長的時(shí)間里都是一種非常簡單和常用的解決方案,隨著服務(wù)器計(jì)算能力的提升,這種解決方案會發(fā)現(xiàn)越來越像是一個(gè)瓶頸點(diǎn),有什么更好的考慮來解決這樣的問題?

鄧毅:當(dāng)網(wǎng)站的流量不斷變大的時(shí)候,負(fù)載均衡交換的方法是一個(gè)較為簡單的擴(kuò)展系統(tǒng)容量的辦法,但是它畢竟是一個(gè)通用的解決方案,有一定的局限性。所以,當(dāng)這個(gè)方案遇到瓶頸的時(shí)候,就需要對業(yè)務(wù)流程和用戶訪問行為進(jìn)行更細(xì)致的分析,找到可能的瓶頸。通常,解決這一些瓶頸的辦法來源于對一些冗余運(yùn)算或 I/O 的優(yōu)化。例如,負(fù)載均衡有可能導(dǎo)致一些重復(fù)的運(yùn)算(可能被均衡到不同的機(jī)器上去了),此時(shí)通過優(yōu)化均衡方法、優(yōu)化系統(tǒng)結(jié)構(gòu),可能可以在某個(gè)地方放入一個(gè)合適的緩存,保存中間結(jié)果,從而避免重復(fù)的運(yùn)算,最終提高系統(tǒng)的吞吐。再進(jìn)一步,如果還存在瓶頸,就可能需要在系統(tǒng)架構(gòu)的層次做妥協(xié),比如通過犧牲一定程度上事務(wù)的一致性換取更高的性能。


黃冬:互聯(lián)網(wǎng)的即時(shí)計(jì)算越來越多,而這樣的計(jì)算越來越多的依賴大量的數(shù)據(jù)存儲,比如依據(jù)數(shù)千萬甚至更多的用戶使用習(xí)慣和用戶自身的使用歷史,得出該次搜索的排充。在這樣的計(jì)算面前是否有什么巧妙的方法?

鄧毅:使用大量的用戶行為數(shù)據(jù)進(jìn)行智能的分析,的確能夠得到一些非常有用的數(shù)據(jù),從而提升用戶的體驗(yàn)。當(dāng)然,這里需要大量的計(jì)算資源。

對于一些即時(shí)計(jì)算的場合,如果想享受這些數(shù)據(jù)帶來的好處,一個(gè)辦法就是把一些計(jì)算模型進(jìn)行劃分:對于規(guī)模較大且較長時(shí)期不會變化從而可以預(yù)處理的部分,在后臺花費(fèi)一些計(jì)算資源預(yù)先計(jì)算好,然后通過分布式的只讀系統(tǒng)提供快速的讀取服務(wù);中等規(guī)模變化較快的數(shù)據(jù),可以建立快速計(jì)算流程,定時(shí)計(jì)算,并立即可以訪問;而與本次操作直接相關(guān)的數(shù)據(jù),如用戶特征、搜索詞等,才是真正的即時(shí)計(jì)算,這時(shí)候需要考慮到足夠短的響應(yīng)時(shí)間。

把計(jì)算模型分解成這樣的三個(gè)層次并不總是一件特別容易的時(shí)候,有時(shí)候甚至需要對計(jì)算模型進(jìn)行必要少量的修改,在不大幅度犧牲準(zhǔn)確度的情況下做一些簡化,從而可以讓不同類型的數(shù)據(jù)分開計(jì)算,最后再綜合一起處理。


黃冬:垂直搜索引擎已經(jīng)成為各個(gè)網(wǎng)站及業(yè)務(wù)系統(tǒng)的必備功能,在這方面是否有一些良好的現(xiàn)成產(chǎn)品和架構(gòu)方案?

鄧毅:隨著互聯(lián)網(wǎng)用戶對于搜索這個(gè)概念的認(rèn)識,垂直搜索日益成為各個(gè)網(wǎng)站的一個(gè)重要功能。當(dāng)用戶不知道某個(gè)東西在哪里的時(shí)候,可能不愿意一層層的去找,而會去搜。

相比通用搜索引擎,垂直搜索首先需要保證較低的開發(fā)成本,因?yàn)榫W(wǎng)站最大的技術(shù)力量需要花在其自身的核心價(jià)值上;其次,這樣的引擎需要滿足一定的性能和質(zhì)量要求,雖然不必與通用過的搜索引擎那樣快、那樣準(zhǔn);最后,網(wǎng)站通常有自己特有的一些東西,比如一些結(jié)構(gòu)較為特殊的數(shù)據(jù)需要搜索或者影響搜索排序,這就要求一個(gè)結(jié)構(gòu)和功能可以方便定制的引擎。

互聯(lián)網(wǎng)上有不少優(yōu)秀的開源項(xiàng)目, 我個(gè)人比較了解的有Apache 的分布式存儲與計(jì)算軟件Hadoop、搜索索引軟件Lucene 等。


黃冬:大量的用戶使用行為記錄需要留存,而留存下的數(shù)據(jù)量非常大,對于相關(guān)的數(shù)據(jù)也要進(jìn)行頻繁和復(fù)雜的業(yè)務(wù)計(jì)算,對于這樣的存儲有什么解決方案嗎?對于這樣的分析型計(jì)算有什么有效的架構(gòu) ?

鄧毅:首先存儲方面,根據(jù)計(jì)算對于數(shù)據(jù)的讀寫需求,可以有兩種方案:

一種方式是采用適合流式處理的分布式文件系統(tǒng),如 HDFS、GFS,通過自動數(shù)據(jù)塊的備份等技術(shù),可以保證數(shù)據(jù)的可靠存儲,同時(shí)利用大數(shù)據(jù)塊的存儲保證流式順序數(shù)據(jù)讀寫的高性能。當(dāng)一些數(shù)據(jù)需要經(jīng)常性的全量訪問,且這樣的訪問較容易流式的處理的時(shí)候,可以把這些數(shù)據(jù)存在這類文件系統(tǒng)中。

另一種方式是采用分布式的Key-Value 結(jié)構(gòu),如HBase、BigTable 等,他們的特點(diǎn)是可以支持隨機(jī)讀寫,而簡化的操作限制又使得它比數(shù)據(jù)庫更容易實(shí)現(xiàn)大規(guī)模的分布式結(jié)構(gòu),因而適合計(jì)算中只需要讀寫海量數(shù)據(jù)中隨機(jī)一部分條目的情況。

運(yùn)算框架只要是支持大規(guī)模分布運(yùn)算的都可以,例如前面提到的基于Map/Reduce 的分布式計(jì)算框架Hadoop

(本文來自《程序員》雜志0911期,更多精彩內(nèi)容敬請關(guān)注0911期)

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多