日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

揭秘eBay架構(gòu)與存儲(chǔ)

 CevenCheng 2011-08-04

揭秘eBay架構(gòu)與存儲(chǔ)

eBayd Web領(lǐng)域樹(shù)立了一個(gè)典范。從一系列的數(shù)據(jù)當(dāng)中都可以看到,這樣一個(gè)超大規(guī)模的網(wǎng)站,其數(shù)據(jù)和計(jì)算量對(duì)技術(shù)的要求非常之高。為了能保證全球兩億多用戶的正常訪問(wèn),除了要有優(yōu)良的技術(shù)架構(gòu)作為支撐外,每天產(chǎn)生的海量數(shù)據(jù)也需要精心保存。作何一個(gè)開(kāi)發(fā)人員和信息管理人員面對(duì)這樣艱巨的任務(wù)都如履薄冰。為此本刊組織了兩篇eBay的技術(shù)文章,以饗讀者。

 

擴(kuò)展:不僅僅關(guān)于架構(gòu)

文/Frank Sommers 譯者/靳黎明

 

在2006 SD論壇中,兩位eBay的架構(gòu)師發(fā)表演講,總體闡述了兩個(gè)主題:eBay的架構(gòu)是如何處理每天十億次的頁(yè)面訪問(wèn)請(qǐng)求,以及該架構(gòu)是如何從當(dāng)初的Perl腳本演化到目前的運(yùn)行在8個(gè)數(shù)據(jù)中心的1萬(wàn)5千個(gè)應(yīng)用程序例。該演講所得出一個(gè)結(jié)論就是,擴(kuò)展僅僅是架構(gòu)中的問(wèn)題。

 

eBay系統(tǒng)架構(gòu)的演化

在2006 SD論壇中,Randy Shoup和Dan Pritchett都結(jié)合eBay發(fā)表了關(guān)于eBay架構(gòu)的演講。Pritchett隨后在他的Blog中發(fā)布了一個(gè)演講幻燈片——標(biāo)題為eBay的架構(gòu)。

意料之中,他在演講中提到了一些令人驚嘆的統(tǒng)計(jì)數(shù)字,具體如下:

l         2億1千2百萬(wàn)注冊(cè)用戶

l         每天10億次的訪問(wèn)量

l         每天260億次的SQL查詢和更新

l         超過(guò)2千萬(wàn)億的數(shù)據(jù)量

l         每秒價(jià)值1590美元的貨物交易

l         超過(guò)10億張的圖片存儲(chǔ)

l         7種不同的語(yǔ)言

l         99.94%的系統(tǒng)可用性

與開(kāi)發(fā)過(guò)程和特性相關(guān)的其他統(tǒng)計(jì)數(shù)據(jù),如下:

l         每季度網(wǎng)站新增300多項(xiàng)新特性

l         每?jī)芍馨l(fā)布超過(guò)十萬(wàn)行的代碼

根據(jù)他的演講,盡管eBay的架構(gòu)已經(jīng)達(dá)到了如此大的規(guī)模,但是,eBay期望能夠在短短幾年內(nèi)實(shí)現(xiàn)它的目標(biāo)——處理通信量高達(dá)十倍的額外增長(zhǎng)。另外一個(gè)架構(gòu)目標(biāo)是,能夠處理峰值載荷,并且在非常負(fù)載或者系統(tǒng)癱瘓的情況下能夠使組件安全地停止工作而不致受損。

根據(jù)演講的內(nèi)容,目前,eBay的系統(tǒng)架構(gòu)正朝著第四個(gè)版本努力。當(dāng)然,演講中最吸引人的技術(shù)部分也主要是關(guān)于這個(gè)版本的各種技術(shù)信息,例如,演講者所講述的是擴(kuò)展應(yīng)用程序?qū)拥牡谝徊剑恨饤壌蟛糠值腏2EE特性。取而代之的是,他們注意到“eBay采用Servlets 和一個(gè)重寫的連接池進(jìn)行擴(kuò)展?!?/font>

根據(jù)演講的介紹,關(guān)于應(yīng)用程序?qū)訑U(kuò)展的另一吸引人的方面是,在應(yīng)用程序?qū)油耆槐4鏁?huì)話狀態(tài)信息。取而代之的是,“在cookie或者scratch數(shù)據(jù)庫(kù)中保存過(guò)渡狀態(tài)?!睘榱藢?shí)現(xiàn)數(shù)據(jù)存取,eBay使用內(nèi)部開(kāi)發(fā)的Java O/R映射解決方案。

在擴(kuò)展該網(wǎng)站的搜索方面,演講者注意到一個(gè)與眾不同的需求,而這是Google這樣的通用Web搜索引擎所不會(huì)遇到的問(wèn)題,即:eBay的用戶期望能夠在搜索結(jié)果中立即查詢出他們對(duì)數(shù)據(jù)所做出的變動(dòng)。同樣地,拍賣者確切地知道他們所期望的搜索結(jié)果——舉個(gè)例子,他們剛剛列出的項(xiàng)目必須出現(xiàn)在所有相關(guān)的搜索結(jié)果中。顯而易見(jiàn),在最新版eBay搜索的重架構(gòu)出現(xiàn)之前,僅僅是更新一次搜索的索引也需要9個(gè)小時(shí)。

演講者說(shuō)到了很多類似的具有挑戰(zhàn)性的問(wèn)題,同時(shí)也深入探討了問(wèn)題的解決方案。然而對(duì)我而言,演講中令我最感興趣的話題是,關(guān)于eBay架構(gòu)本身是如何演化的介紹。關(guān)于這個(gè)話題,我們需要對(duì)第一版本的架構(gòu)進(jìn)行一些思考,例如:

l         1995年的一個(gè)周末Pierre Omidyar構(gòu)建了第一版本的架構(gòu)

l         每個(gè)項(xiàng)目是一個(gè)單獨(dú)的文件,由Perl腳本生成

l         沒(méi)有搜索,只能夠按照類別進(jìn)行瀏覽

l         系統(tǒng)硬件是由能夠在Fry商店購(gòu)買的商品零件所組裝的

從1995年到1997年9月,eBay一直使用這個(gè)架構(gòu)。演講提到,那時(shí),eBay已經(jīng)是一個(gè)比較有名的網(wǎng)站了,而且它的架構(gòu)也達(dá)到了5萬(wàn)項(xiàng)的最高值。

接下來(lái)的幾次迭代使得eBay的架構(gòu)進(jìn)入了3層架構(gòu)的階段,最初是在微軟的IIS服務(wù)器上,然后轉(zhuǎn)移到Java中。最終的幾個(gè)版本表明,需要摒棄J2EE的很多特性,以高度化定制的架構(gòu)來(lái)滿足eBay的獨(dú)特需求。

關(guān)于eBay所經(jīng)歷的這四個(gè)主要的架構(gòu)版本,一種觀點(diǎn)是,這四種版本是一場(chǎng)進(jìn)化。然而,另外一種觀點(diǎn)是,這四個(gè)版本形成了一個(gè)完整的圓圈:剛開(kāi)始時(shí),采用設(shè)計(jì)定制的解決方案,最終又轉(zhuǎn)回到定制解決方案上來(lái)。

根據(jù)對(duì)各個(gè)不同架構(gòu)階段的介紹,我非常希望了解,eBay的架構(gòu)師在解決表現(xiàn)層擴(kuò)展這一迫切問(wèn)題上達(dá)到了哪種程度,他們希望在系統(tǒng)中實(shí)現(xiàn)可擴(kuò)展性以此來(lái)處理將來(lái)的負(fù)載,那么這一目標(biāo)的實(shí)現(xiàn)又達(dá)到了何種程度。即使是為將來(lái)考慮,那么,架構(gòu)師需要預(yù)測(cè)未來(lái)某些假設(shè)的時(shí)間點(diǎn)處系統(tǒng)的可擴(kuò)展性,他們的這一能力又達(dá)到了何種程度呢?

關(guān)于這些預(yù)測(cè)的一個(gè)問(wèn)題是,即使目前的操作系統(tǒng)中保存的大量數(shù)據(jù)都是可供使用的,系統(tǒng)的使用模式也會(huì)發(fā)生改變的——舉個(gè)例子,用戶可能開(kāi)始喜歡視頻而不是簡(jiǎn)單的圖片,或者語(yǔ)音電話作為系統(tǒng)交互的一部分。根據(jù)演講的內(nèi)容,這些使用模式的變化完全可以很快地到來(lái),尤其是當(dāng)平均架構(gòu)生命周期變成了大約2-3年。例如,兩三年前,聽(tīng)說(shuō)過(guò)YouTube的人很少,但是,在該公司短短的兩三年生命周期中,數(shù)百萬(wàn)的用戶已經(jīng)習(xí)慣于網(wǎng)絡(luò)視頻了。

 

 

實(shí)現(xiàn)擴(kuò)展:組織能力+架構(gòu)

   我認(rèn)為最后爭(zhēng)論的這個(gè)問(wèn)題是這次eBay演講主要信息之所在。對(duì)我來(lái)說(shuō),關(guān)于eBay架構(gòu)的變革,最驚人的方面不僅僅是每一個(gè)架構(gòu)時(shí)期所采用的解決方案技術(shù)的卓越,還有這個(gè)事實(shí)——eBay能夠通過(guò)對(duì)系統(tǒng)進(jìn)行不斷的改進(jìn)來(lái)迎接所遇到的各種挑戰(zhàn),所有階段的努力使得這個(gè)網(wǎng)站長(zhǎng)久不衰。

有趣的是,它建議你幾乎可以從任何一種架構(gòu)開(kāi)始做起——甚至是使用Perl或者Rails或者JSP頁(yè)面——當(dāng)你需要擴(kuò)展你的應(yīng)用程序時(shí),只要你知道如何轉(zhuǎn)移到下一步,并且有能力實(shí)現(xiàn)。反過(guò)來(lái),它也建議,可擴(kuò)展性的關(guān)鍵并不完全是每個(gè)架構(gòu)階段之間如何進(jìn)行擴(kuò)展,而是一個(gè)公司或者一個(gè)組織如何把應(yīng)用程序從一個(gè)架構(gòu)階段推進(jìn)到下一階段。這表明,擴(kuò)展像技術(shù)問(wèn)題一樣是個(gè)人或者組織的問(wèn)題。

當(dāng)然,這并沒(méi)有什么令人驚訝的,因?yàn)?,與架構(gòu)設(shè)計(jì)一樣,擴(kuò)展也總是可以實(shí)現(xiàn)的。(eBay演講的最后一部分就講解了擴(kuò)展的可操作性這個(gè)主題——例如,它解釋了1萬(wàn)5千個(gè)應(yīng)用程序?qū)嵗侨绾瓮ㄟ^(guò)八個(gè)數(shù)據(jù)中心進(jìn)行管理的。)然而,如果從更寬廣的視角來(lái)看待擴(kuò)展的話,其中兩個(gè)普遍存在的擴(kuò)展方式可能在實(shí)際中是沒(méi)有用處的。

一個(gè)方式是,從開(kāi)始就過(guò)于強(qiáng)調(diào)可擴(kuò)展性的設(shè)計(jì)。大多數(shù)開(kāi)發(fā)人員都知道架構(gòu)的擴(kuò)展無(wú)法從一開(kāi)始就確定,但是,在某些情況下,架構(gòu)師仍然寧愿花費(fèi)過(guò)多的精力來(lái)試圖設(shè)計(jì)一個(gè)能夠長(zhǎng)期滿足應(yīng)用程序需求的架構(gòu)。Pierre Omidyar基本上不同意這個(gè)觀點(diǎn),這就是為什么他會(huì)選擇在他的初始版本中使用Perl腳本以及每個(gè)項(xiàng)目一個(gè)文件的機(jī)制,而不采用一勞永逸的方式。

第二個(gè)主張可擴(kuò)展性無(wú)用的觀點(diǎn)認(rèn)為,可擴(kuò)展性和性能一樣純粹是事后考慮的,而且反對(duì)在應(yīng)用程序開(kāi)發(fā)的初始階段就考慮可擴(kuò)展性。XP倡導(dǎo)者有些時(shí)候利用這一觀點(diǎn)辯護(hù),因?yàn)樗麄兏鼰嶂杂诳焖俚貙懘a,而不是考慮以后這些代碼將如何進(jìn)行擴(kuò)展以處理將來(lái)的應(yīng)用程序工作負(fù)載。

實(shí)際上,這兩種觀點(diǎn)都是沒(méi)有太大用處的。更加現(xiàn)實(shí)的觀點(diǎn)是,第三種觀點(diǎn),把擴(kuò)展作為組織上甚至是業(yè)務(wù)層上的能力的一部分。預(yù)測(cè)將來(lái)的工作負(fù)載是非常困難的,我們需要認(rèn)識(shí)到這一點(diǎn),那么,如果可以預(yù)測(cè)的話,這個(gè)觀點(diǎn)將主要用于這種架構(gòu)——處理近期進(jìn)行的擴(kuò)展,同時(shí)允許對(duì)特性進(jìn)行快速部署,以使應(yīng)用程序的實(shí)際用戶能夠?yàn)橹С謱?lái)的架構(gòu)更新生成業(yè)務(wù)合理性。然而,遠(yuǎn)遠(yuǎn)不同于把擴(kuò)展作為組織甚至業(yè)務(wù)能力開(kāi)始,發(fā)展到能夠處理系統(tǒng)的架構(gòu)變化。這看起來(lái)正是2006 SD論壇上eBay架構(gòu)師所做演講的觀點(diǎn)之所在。

那么在你的項(xiàng)目中,你什么時(shí)候開(kāi)始考慮實(shí)現(xiàn)擴(kuò)展性呢? 

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

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多