詳解知名網(wǎng)站的技術(shù)發(fā)展歷程
來源:解決方案 2012-05-30
文 / 林昊
互聯(lián)網(wǎng)已經(jīng)發(fā)展多年,其中不乏脫穎而出者,這些網(wǎng)站多數(shù)都已存在了接近10年或10年以上,在如此長時間的發(fā)展過程中,除了業(yè)務上面臨的挑戰(zhàn),在技術(shù)上也面臨了很多的挑戰(zhàn)。我挑選了一些Alexa排名較前的網(wǎng)站(排名截止到2012年4月21日),看看它們在技術(shù)上是如何應對業(yè)務發(fā)展過程中的挑戰(zhàn)的。
Google目前Alexa排名第1。它誕生于1997年,當時是一個研究性項目,每個月build一次索引,build出來的索引通過sharding(shard bydoc)的方式分散到多臺服務器(Index Server)上,具體的網(wǎng)頁數(shù)據(jù)同樣通過sharding的方式分散到多臺服務器(DocServer)上,當用戶提交請求時,通過前端的一臺服務器將請求提交給Index Server獲得打了分的倒排索引,然后從DocServer提取具體的網(wǎng)頁信息(例如網(wǎng)頁標題、搜索關(guān)鍵詞匹配的片段信息等),最終展現(xiàn)給用戶。
隨著索引的網(wǎng)頁增加,這個結(jié)構(gòu)可通過增加Index Server以及DocServer來存儲索引以及網(wǎng)頁的數(shù)據(jù),但仍然會面臨其他很多方面的問題,于是在這之后的十多年的時間里,Google做了很多事情來改進上面的結(jié)構(gòu)。
1999年,Google增加了一個Cache Cluster,用來Cache查詢的索引結(jié)果和文檔片段信息,同時將Index Server和DocServer通過Replicate的方式變成了Cluster。這兩個改造帶來的好處是網(wǎng)站的響應速度、可支撐的訪問量以及可用性(Availability)得到了提升。這個變化造成了成本的增加,Google在硬件方面的風格始終是不用昂貴的高端硬件,而是在軟件層面來保證系統(tǒng)的可靠性及高性能,于是同年,Google開始采用自行設(shè)計的服務器來降低成本。2000年,Google開始自行設(shè)計DataCenter,采用了各種方法(例如采用其他的制冷方法來替代空調(diào))來優(yōu)化PUE(能源利用率),同時對自行設(shè)計的服務器也做了很多化。2001年,Google對Index的格式進行了修改,將所有的Index放入內(nèi)存,這次改造帶來的好處是網(wǎng)站的響應速度以及可支撐的訪問量得到了極大的提升。2003年,Google發(fā)表了文章Google ClusterArchitecture,其Cluster結(jié)構(gòu)組成為硬件LB+Index Cluster+DocCluster+大量廉價服務器(例如IDE硬盤、性價比高的CPU等),通過并行處理+sharding來保證在降低對硬件要求的同時,響應速度仍然很快。同年Google發(fā)表了關(guān)于Google文件系統(tǒng)的論文(GFS在2000年就已經(jīng)上線),這篇論文很大程度也體現(xiàn)了Google不用昂貴硬件的風格,通過GFS+大量廉價的服務器即可存儲大量的數(shù)據(jù)。2004年,Google再次對Index的格式進行了修改,使得網(wǎng)站的響應速度繼續(xù)提升。同年Google發(fā)表關(guān)于MapReduce的論文,通過MapReduce+大量廉價的服務器即可快速完成以前要使用昂貴小型機、中型機甚至是大型機才能完成的計算任務,而這顯然對于Google快速地構(gòu)建索引提供了很大的幫助。2006年,Google發(fā)表了關(guān)于BigTable的論文(2003年開始上線),使得海量數(shù)據(jù)的分析能夠達到在線系統(tǒng)的要求了,這對于Google提升網(wǎng)站的響應速度起到了很大的幫助。
以上3篇論文徹底改變了業(yè)界對于海量數(shù)據(jù)的存儲、分析和檢索的方法(小道消息:Google內(nèi)部已完成了GFS、MapReduce、BigTable的替換),也奠定了Google在業(yè)界的技術(shù)領(lǐng)導地位。
在一些場景中,Google也采用MySQL來存儲數(shù)據(jù)。同樣,Google對MySQL也做了很多修改,它使用的MySQL信息可以從https://code.google.com/p/google-mysql/了解。
2007年,Google將 build索引的時間縮短到分鐘級,當新網(wǎng)頁出現(xiàn)后,幾分鐘后即可在Google搜索到,同時將IndexCluster通過Protocol Buffers對外提供Service,以供Google各種搜索(例如網(wǎng)頁、圖片、新聞、書籍等)使用,除了IndexCluster提供的Service外,還有很多其他的Service,例如廣告、詞法檢查等。Google的一次搜索大概需要調(diào)用內(nèi)部50個以上的Service,Service主要用C++或Java來編寫。2009年,Google的一篇《How Google usesLinux》文章,揭示了Google在提升機器利用率方面也做了很多的努力,例如將不同資源消耗類型的應用部署在同一臺機器上。
在之后,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不采用昂貴硬件的風格以及領(lǐng)先其他網(wǎng)站的數(shù)據(jù)量決定了其技術(shù)改造基本都是對傳統(tǒng)的軟硬件技術(shù)的革新。
1
2
3
下一頁
文章編輯: 365webcall在線客服系統(tǒng)(www.365webcall.com)
我的評論
登錄賬號: | 密碼: | 快速注冊 | 找回密碼 | ![]() |
| 红桃视频国产精品 | 高清无码在线视频 | 在线播放成人A片 网站 | 好爽好粗好硬免费视频 | 强奸乱伦一区二区 | 国产一区二区视频区视区 | 欧美性生交大片免费看APP麻豆 | 97中文字母在线 | 日韩人妻无码精品-专区 | 91久久精品国产亚洲 | HD丝袜高跟性专区av | 亚洲欧美视频一区 | 亚洲AV色情成人永久网站小说 | 做爰高潮A片宝贝 | 国产无码在线观看一区 | 国产精品久久久精品无码久秀色 | 日韩无码看片毛片网站黄色 | 国产毛片一区二区 | 爽灬爽灬爽灬毛少妇的性视频 | 黄包一级片在线免费观看 | 色欲TV国产亚洲 | 国产一级a毛一级看免费视频 | 亚洲精品一区久久久久久 | 奇米狠狠色777久久久欧美老妇 | 丝袜AV在线任你操 | 国产一区二区三区四区在线观看 | 久久久精品五月天六丁香 | 免费一级A片毛毛片有声小说 | 亚洲成人在线网址 | 人人妻人人操人人爽DVD | 无码人妻精品一区二区蜜桃色欲 | 国产精品久久久久毛片大屁完整版 | 日本素人熟女一区二区 | 精品久久久久色人妻 | 人人妻人人澡人人爽久久av | 亚洲AV永久无码天堂性色在线 | 国产农村妇女一级A片麻豆手机版 | 与丰满老妇人做爰A片 | www.亚洲一区 | 激情小视频在线观看 |