亚洲mv大片欧洲mv|国产永久高清免费动作片www|日日搞|亚洲永久精品大片wwwAPP|国产精品二区三区免费播放心|国产成人8X视频一区二区|一区二区中文字幕网|日本碟片在线播放|任你操在线视频|成人A级片
您當(dāng)前的位置主頁 > 站長新聞 > 瀏覽文章

詳解知名網(wǎng)站的技術(shù)發(fā)展歷程

來源:站長新聞 2012-05-29

快速提升網(wǎng)站銷量,使用365webcall網(wǎng)站客服系統(tǒng)

2006年,Google發(fā)表了關(guān)于BigTable的論文(2003年開始上線),使得海量數(shù)據(jù)的分析能夠達到在線系統(tǒng)的要求了,這對于Google提升網(wǎng)站的響應(yīng)速度起到了很大的幫助

文 / 林昊

互聯(lián)網(wǎng)已經(jīng)發(fā)展多年,其中不乏脫穎而出者,這些網(wǎng)站多數(shù)都已存在了接近10年或10年以上,在如此長時間的發(fā)展過程中,除了業(yè)務(wù)上面臨的挑戰(zhàn),在技術(shù)上也面臨了很多的挑戰(zhàn)我挑選了一些Alexa排名較前的網(wǎng)站(排名截止到2012年4月21日),看看它們在技術(shù)上是如何應(yīng)對業(yè)務(wù)發(fā)展過程中的挑戰(zhàn)的

Google目前Alexa排名第1它誕生于1997年,當(dāng)時是一個研究性項目,每個月build一次索引,build出來的索引通過sharding(shard by doc)的方式分散到多臺服務(wù)器(Index Server)上,具體的網(wǎng)頁數(shù)據(jù)同樣通過sharding的方式分散到多臺服務(wù)器(Doc Server)上,當(dāng)用戶提交請求時,通過前端的一臺服務(wù)器將請求提交給Index Server獲得打了分的倒排索引,然后從Doc Server提取具體的網(wǎng)頁信息(例如網(wǎng)頁標(biāo)題、搜索關(guān)鍵詞匹配的片段信息等),最終展現(xiàn)給用戶

隨著索引的網(wǎng)頁增加,這個結(jié)構(gòu)可通過增加Index Server以及Doc Server來存儲索引以及網(wǎng)頁的數(shù)據(jù),但仍然會面臨其他很多方面的問題,于是在這之后的十多年的時間里,Google做了很多事情來改進上面的結(jié)構(gòu)

1999年,Google增加了一個Cache Cluster,用來Cache查詢的索引結(jié)果和文檔片段信息,同時將Index Server和Doc Server通過Replicate的方式變成了Cluster這兩個改造帶來的好處是網(wǎng)站的響應(yīng)速度、可支撐的訪問量以及可用性(Availability)得到了提升這個變化造成了成本的增加,Google在硬件方面的風(fēng)格始終是不用昂貴的高端硬件,而是在軟件層面來保證系統(tǒng)的可靠性及高性能,于是同年,Google開始采用自行設(shè)計的服務(wù)器來降低成本2000年,Google開始自行設(shè)計DataCenter,采用了各種方法(例如采用其他的制冷方法來替代空調(diào))來優(yōu)化PUE(能源利用率),同時對自行設(shè)計的服務(wù)器也做了很多化2001年,Google對Index的格式進行了修改,將所有的Index放入內(nèi)存, 這次改造帶來的好處是網(wǎng)站的響應(yīng)速度以及可支撐的訪問量得到了極大的提升2003年,Google發(fā)表了文章Google Cluster Architecture,其Cluster結(jié)構(gòu)組成為硬件LB+Index Cluster+Doc Cluster+大量廉價服務(wù)器(例如IDE硬盤、性價比高的CPU等),通過并行處理+sharding來保證在降低對硬件要求的同時,響應(yīng)速度仍然很快同年Google發(fā)表了關(guān)于Google文件系統(tǒng)的論文(GFS在2000年就已經(jīng)上線),這篇論文很大程度也體現(xiàn)了Google不用昂貴硬件的風(fēng)格,通過GFS+大量廉價的服務(wù)器即可存儲大量的數(shù)據(jù)2004年,Google再次對Index的格式進行了修改,使得網(wǎng)站的響應(yīng)速度繼續(xù)提升同年Google發(fā)表關(guān)于MapReduce的論文,通過MapReduce+大量廉價的服務(wù)器即可快速完成以前要使用昂貴小型機、中型機甚至是大型機才能完成的計算任務(wù),而這顯然對于Google快速地構(gòu)建索引提供了很大的幫助

以上3篇論文徹底改變了業(yè)界對于海量數(shù)據(jù)的存儲、分析和檢索的方法(小道消息:Google內(nèi)部已完成了GFS、MapReduce、BigTable的替換),也奠定了Google在業(yè)界的技術(shù)領(lǐng)導(dǎo)地位

在一些場景中,Google也采用MySQL來存儲數(shù)據(jù)同樣,Google對MySQL也做了很多修改,它使用的MySQL信息可以從https://code.google.com/p/google-mysql/了解

2007年,Google將build索引的時間縮短到分鐘級,當(dāng)新網(wǎng)頁出現(xiàn)后,幾分鐘后即可在Google搜索到,同時將Index Cluster通過Protocol Buffers對外提供Service,以供Google各種搜索(例如網(wǎng)頁、圖片、新聞、書籍等)使用,除了Index Cluster提供的Service外,還有很多其他的Service,例如廣告、詞法檢查等Google的一次搜索大概需要調(diào)用內(nèi)部50個以上的Service,Service主要用C++或Java來編寫2009年,Google的一篇《How Google uses Linux》文章,揭示了Google在提升機器利用率方面也做了很多的努力,例如將不同資源消耗類型的應(yīng)用部署在同一臺機器上

在之后,Google又研發(fā)了Colossus(下一代類GFS文件系統(tǒng))、Spanner(下一代類BigTable海量存儲和計算架構(gòu))、實時搜索(基于Colossus實現(xiàn)),主要都是為了提升搜索的實時性以及存儲更多數(shù)據(jù)除了在海量數(shù)據(jù)相關(guān)技術(shù)上的革新外,Google也不斷對業(yè)界的傳統(tǒng)技術(shù)進行創(chuàng)新,例如提高TCP的初始擁塞窗口值、改進HTTP的SPDY協(xié)議、新的圖片格式WebP等

在Google的發(fā)展過程中,其技術(shù)的改造主要圍繞在可伸縮性、性能、成本和可用性4個方面,Google不采用昂貴硬件的風(fēng)格以及領(lǐng)先其他網(wǎng)站的數(shù)據(jù)量決定了其技術(shù)改造基本都是對傳統(tǒng)的軟硬件技術(shù)的革新

Facebook目前Alexa排名第2它采用LAMP構(gòu)建,隨著業(yè)務(wù)的發(fā)展,它也在技術(shù)上做了很多改造

作為改造的第一步,Facebook首先在LAMP結(jié)構(gòu)中增加了Memcached,用來緩存各種數(shù)據(jù),從而大幅度提升系統(tǒng)的響應(yīng)時間以及可支撐的訪問量,之后又增加了Services層,將News Feed、Search等較通用的功能作為Service提供給前端的PHP系統(tǒng)使用,前端的系統(tǒng)通過Thrift訪問這些ServiceFacebook采用了多種語言來編寫各種不同的Service,主要是針對不同的場景選擇合適的語言,例如C++、Java、Erlang

大量使用Memcached以及訪問量的不斷上漲,導(dǎo)致訪問Memcached的網(wǎng)絡(luò)流量太大,交換機無法支撐,Facebook通過改造采用UDP的方式來訪問Memcached,以降低單連接上的網(wǎng)絡(luò)流量除此之外,還有其他一些改造,具體信息可以查看on.fb.me/8R0C

PHP作為腳本語言,優(yōu)勢是開發(fā)簡單、易上手,劣勢是需要消耗較多的CPU和內(nèi)存當(dāng)Facebook的訪問量增長到了一定規(guī)模后,這個劣勢就比較突出了,于是從2007年起,Facebook就嘗試多種方法來解決這個問題,最后誕生于Facebook Hackathon的HipHop產(chǎn)品成功地脫穎而出HipHop可以自動將PHP轉(zhuǎn)化為C++代碼,Facebook在使用HipHop后,同等配置的機器,可支撐的請求量是之前的6倍,CPU的使用率平均下降了50%,從而為Facebook節(jié)省了大量主機將來Facebook還會對HipHop進行再次改進,通過HipHop將PHP編譯為bytecode,放入HipHop VM中執(zhí)行,再由HipHop VM來編譯為機器代碼,方式與JIT類似

2009年,Facebook研發(fā)了BigPipe,借助此系統(tǒng),Facebook成功讓網(wǎng)站的速度提升了兩倍隨著Facebook訪問量的上漲,收集眾多服務(wù)器上的執(zhí)行日志也開始面臨挑戰(zhàn),于是Facebook研發(fā)了Scribe來解決此問題對于存儲在MySQL中的數(shù)據(jù),Facebook采用垂直拆分庫和水平拆分表的方式來支撐不斷增長的數(shù)據(jù)量作為Facebook技術(shù)體系中重要的一環(huán),Facebook也對MySQL進行了很多優(yōu)化和改進,例如Online Schema Change等,更多信息可見Auction的軟件,在此基礎(chǔ)上改造產(chǎn)生了淘寶2004年,將系統(tǒng)由PHP遷移到Java,MySQL遷移為Oracle(小型機、高端存儲設(shè)備),應(yīng)用服務(wù)器采用了WebLogic2005-2007年的發(fā)展過程中,用JBoss替代了WebLogic,對數(shù)據(jù)庫進行了分庫,基于BDB做了分布式緩存,自行開發(fā)了分布式文件系統(tǒng)TFS以支持小文件的存儲,并建設(shè)了自己的CDN2007-2009年對應(yīng)用系統(tǒng)進行垂直拆分,拆分后的系統(tǒng)都以Service的方式對外提供功能,對數(shù)據(jù)采用了垂直和水平拆分

在進行了數(shù)據(jù)的垂直和水平拆分后,Oracle產(chǎn)生的成本越來越高,于是在之后的幾年,淘寶又開始將數(shù)據(jù)逐漸從Oracle遷移到MySQL,同時開始嘗試新型的數(shù)據(jù)存儲方案,例如采用HBase來支撐歷史交易訂單的存儲和檢索等近幾年淘寶開始進行Linux內(nèi)核、JVM、Nginx等軟件的修改定制工作,同時也自行設(shè)計了低能耗服務(wù)器,同時在軟硬件上進行優(yōu)化,以更好地降低成本

從淘寶的整個發(fā)展過程來看,技術(shù)改造主要圍繞在可伸縮性和可用性兩點,現(xiàn)在也開始逐漸將精力投入在了性能和成本上目前淘寶的Alexa排名為第14

總結(jié)

從上面這些Alexa排名靠前網(wǎng)站的技術(shù)發(fā)展過程來看,每家網(wǎng)站由于其所承擔(dān)的業(yè)務(wù)不同、團隊人員組成不同、做事風(fēng)格相異,在技術(shù)的不同發(fā)展階段中會采用不同的方法來支撐業(yè)務(wù)的發(fā)展,但基本都會圍繞在可伸縮性、可用性、性能以及成本這4點上,在發(fā)展到比較大規(guī)模后,各網(wǎng)站在技術(shù)結(jié)構(gòu)上有了很多的相似點,并且這些結(jié)構(gòu)還將繼續(xù)進行演變

作者林昊,目前就職于淘寶,2007-2010年負(fù)責(zé)設(shè)計和實現(xiàn)淘寶的服務(wù)框架,此服務(wù)框架在淘寶大面積使用,每天承擔(dān)了150億+的請求;2011年開始負(fù)責(zé)HBase在淘寶的落地,目前淘寶已有20個以上的在線項目在使用HBase

文章編輯: 365webcall免費在線客服(www.365webcall.com)

我的評論

登錄賬號: 密碼: 快速注冊 | 找回密碼

亚洲mv大片欧洲mv|国产永久高清免费动作片www|日日搞|亚洲永久精品大片wwwAPP|国产精品二区三区免费播放心|国产成人8X视频一区二区|一区二区中文字幕网|日本碟片在线播放|任你操在线视频|成人A级片