2月18日,CSDN(微博)在北京舉行了TUP第19期活動(dòng):大數(shù)據(jù)系列研討會(huì)——從12306談起。本次研討會(huì)匯集了來(lái)自百度、豆瓣(微博)網(wǎng)、搜狗、淘寶、土豆、凡客誠(chéng)品(微博)、新浪微博、IBM等公司的眾多業(yè)內(nèi)技術(shù)高管,就大數(shù)據(jù)及海量并發(fā)用戶(hù)網(wǎng)絡(luò)的需求分析、架構(gòu)設(shè)計(jì)、產(chǎn)品研發(fā)、系統(tǒng)運(yùn)維等話(huà)題和與會(huì)者進(jìn)行了深度探討。與會(huì)者包括來(lái)自互聯(lián)網(wǎng)/IT公司技術(shù)高管、研發(fā)精英、運(yùn)維管理、對(duì)高并發(fā)網(wǎng)站解決方案有研究的技術(shù)人員,共計(jì)三百人參與了此次研討會(huì)。本次研討會(huì)分為上下午兩部分,上午為高端討論,下午為集中講座。
針對(duì)網(wǎng)站在突發(fā)高負(fù)載和高增長(zhǎng)的情況下,如何承載巨大訪問(wèn)量,來(lái)自百度(移動(dòng)·云)的首席架構(gòu)師林仕鼎帶來(lái)了名為《架構(gòu)設(shè)計(jì)的一些思考》的精彩演講。
存儲(chǔ)和分布式
林仕鼎首先從存儲(chǔ)、分布式、服務(wù)架構(gòu)、計(jì)算模型的例子開(kāi)始談起。他認(rèn)為程序組織非常重要,對(duì)于存儲(chǔ)這部分來(lái)說(shuō),它需要考慮包括結(jié)構(gòu)、數(shù)據(jù)特點(diǎn)、訪問(wèn)模式、接口性質(zhì)四大方面的問(wèn)題。林仕鼎對(duì)這四大方面的問(wèn)題作了詳細(xì)闡述,指出每一個(gè)問(wèn)題都面臨若干選擇,比如結(jié)構(gòu)問(wèn)題就有:File、Object、Table的選擇,然后在同樣一個(gè)結(jié)構(gòu)中,還要面臨是實(shí)時(shí)讀寫(xiě)、批量寫(xiě)實(shí)時(shí)讀之類(lèi)的訪問(wèn)模式的選擇,接下來(lái)不同訪問(wèn)模式對(duì)系統(tǒng)帶來(lái)的影響,數(shù)據(jù)大小的分布、布局等。林仕鼎表示,正是因?yàn)橛羞@么多因素的影響,導(dǎo)致開(kāi)發(fā)者在設(shè)計(jì)系統(tǒng)時(shí),必需要考慮很多方面。只有在全面掌握這些信息的情況下,才能設(shè)計(jì)出符合實(shí)際要求的系統(tǒng)。
存儲(chǔ)帶來(lái)的一些矛盾包括:延遲與吞吐、隨機(jī)與順序、規(guī)模與實(shí)時(shí)性。一般來(lái)說(shuō),系統(tǒng)的規(guī)模越大,實(shí)時(shí)性的保證難度也就越大。要化解矛盾,需要在包括B+tree、Log-based兩類(lèi)模型建設(shè)的基礎(chǔ)上做到弱化需求、發(fā)掘局部性、組合模型。
在談到分布式時(shí),林仕鼎表示其實(shí)分布式的目標(biāo)很簡(jiǎn)單,只有兩個(gè):擴(kuò)容和容錯(cuò)。要實(shí)現(xiàn)這些目標(biāo)需要采用Partition和Replication兩種方法,而協(xié)議設(shè)計(jì)、調(diào)試是難點(diǎn)。
服務(wù)架構(gòu)和計(jì)算模型
在進(jìn)行系統(tǒng)設(shè)計(jì)時(shí),所有系統(tǒng)都會(huì)面臨一個(gè)極限值,即在給定系統(tǒng)資源情況下,所能提供的最大請(qǐng)求數(shù),這里需要做一個(gè)特別設(shè)計(jì),以防請(qǐng)求數(shù)突破極限值。如果沒(méi)有作特別設(shè)計(jì),在極端情況下,吞吐量超過(guò)一個(gè)點(diǎn),那整個(gè)系統(tǒng)將崩潰。
服務(wù)架構(gòu)的目標(biāo)包括系統(tǒng)的高吞吐能力和在極限壓力下的穩(wěn)定輸出。要實(shí)現(xiàn)這兩個(gè)目標(biāo)離不開(kāi)服務(wù)架構(gòu)的兩類(lèi)模型:屬于基本類(lèi)型的threadpool + queue和屬于復(fù)雜類(lèi)型的event-driven。為了保證整個(gè)系統(tǒng)的穩(wěn)定性,還需要注意:減小資源分配粒度并主動(dòng)調(diào)度、Flow Control、負(fù)載反饋,Throttling和延遲截?cái)噙@四個(gè)方面。
計(jì)算模型包含很多不同特點(diǎn),一般來(lái)講分為三類(lèi):數(shù)據(jù)密集型、計(jì)算密集型、通訊密集型(即傳統(tǒng)HPC)。林仕鼎表示,首先要分析系統(tǒng)的特點(diǎn),找到適合的模型。
在很多情況下,在怎么做系統(tǒng)、服務(wù)、數(shù)據(jù)倉(cāng)庫(kù)等問(wèn)題上,開(kāi)發(fā)者面臨的具體問(wèn)題都千差萬(wàn)別。此時(shí),需要建立一些模型,或者有比較好的實(shí)踐原則。作為一個(gè)架構(gòu)師,首先是要非常深入地了解自己的業(yè)務(wù),再根據(jù)業(yè)務(wù)特點(diǎn)運(yùn)用一些現(xiàn)行做法。林仁鼎總結(jié)了“架構(gòu)師三板斧”,作為本次演講總結(jié)與各位分享。架構(gòu)師三板斧內(nèi)容如下。
看清需求:Tradeoff、無(wú)法滿(mǎn)足所有需求、無(wú)須同等對(duì)待所有需求、發(fā)現(xiàn)根本需求、抽象、降維、了解需求隨時(shí)間的變化、選擇方法、把握節(jié)奏。選擇方法:測(cè)算 -> 模擬 -> 實(shí)現(xiàn)、分解 vs 迭代、設(shè)計(jì)模式。把握節(jié)奏:目標(biāo)與可達(dá)路徑、定期產(chǎn)出。
推薦閱讀
淘寶伏威關(guān)于12306網(wǎng)站解決方案:魔鬼在細(xì)節(jié)里
2月18日,CSDN(微博)在北京舉行了TUP第19期活動(dòng):大數(shù)據(jù)系列研討會(huì)——從12306談起。本次研討會(huì)匯集了來(lái)自百度、豆瓣(微博)網(wǎng)、搜狗、 淘寶、土豆、凡客誠(chéng)品(微博)、新浪微博、IBM等公司的眾多業(yè)內(nèi)技術(shù)高管,就大數(shù)據(jù)>>>詳細(xì)閱讀
本文標(biāo)題:林仕鼎:大數(shù)據(jù)處理 架構(gòu)師的三板斧
地址:http://www.sdlzkt.com/a/kandian/20120305/36941.html

網(wǎng)友點(diǎn)評(píng)
精彩導(dǎo)讀
科技快報(bào)
品牌展示