2008-10-17 37 views
30

我經常驚歎於我可以隨時隨地從世界任何地方訪問www.google.com,並快速獲取返回的頁面。如何擴展像Google這樣的HTTP服務器?

當然,他們壓縮他們的輸出並保持最小的設計 - 這有所幫助。

但他們必須有百萬同時點擊到DNS列出爲「www.google.com」的網頁上。

所有設置了Apache或其他Web服務器的人都知道事情非常好,超級快,直到你開始獲得幾千個同時連接,更不用說百萬

那麼,他們怎麼辦呢?我想他們有一個服務器機器的整個農場,但你永遠不會知道它。當我剛剛去了Verizon時,網址是www22.verizon.com。你永遠不會看到「www22.google.com」,從來沒有

任何想法他們使用什麼特定的技術,或我們非谷歌凡人可以使用什麼技術來做同樣的事情?

+0

基本上,一個IP地址並不意味着它只能引用一個框。 – Pacerier 2014-10-17 16:08:09

回答

0

這是正常的互聯網流量處理。谷歌從字面上有整個數據中心遍佈,爲www.google.com

3

http://www.akamai.com

或者,翻譯成英文(也許擬訂克里斯的回答)響應地球,使用內容分發網絡(CDN)與世界各地的節點 - 請注意,這些不僅僅是數據中心,還有實際的網絡服務器(儘管我相信大多數人不會爲這個區別製造巨大的障礙)。 Akamai僅僅是一個例子。擊中谷歌的「內容交付網絡」,你一定會找到其他人。

你也可以實現一個緩存策略,儘管這可能不會讓你相當滿意。 ;)

1

除了大型Web農場,毫無疑問,他們正在做大量的緩存。他們可以將頁面內容中的任何內容緩存到頻繁的搜索條件中。高速緩存是非Google凡人可以做的事情。

+0

我似乎記得在某個地方,Google會在任何時間點將幾乎所有的頁面列表保存在內存中。 – 2008-10-17 02:19:00

+0

緩存是不夠的 - 數百萬的命中同時要求靜態網頁仍然會帶來大多數設置到他們的膝蓋。這與DNS – Draemon 2008-10-17 02:38:29

42

google.com,update.microsoft.com和其他處理令人驚訝的高聚合帶寬的服務通過DNS完成了他們的許多魔術。

BGP Anycast路由用於宣佈來自世界各地的DNS服務器的IP地址。每個DNS服務器都配置爲將google.com解析爲地理位置接近的數據中心內的IP地址。所以這是基於地理位置的第一級負載平衡。

接下來,儘管DNS.com對google.com的查詢只會返回少量的IP地址,但DNS服務器會在其響應中快速循環大量地址。每個請求google.com的客戶都會得到一個特定的答案,並且可以暫時緩存該答案,但下一個客戶將獲得不同的IP地址。所以這是第二級的負載平衡。

第三,它們使用傳統的服務器負載均衡器將會話映射到單個IP地址以多個後端服務器。所以這是第三級的負載平衡。

7

昨晚在奧斯汀的Google開放日,Alan Eustace在俄勒岡州的The Dalles展示了谷歌數據中心的圖片,並表示它的大小約爲3個足球場。

這是最新的一個,但Google有多個數據中心。這不是每個查詢都轉到同一臺計算機上。即使如此,如果您猜測Google有多少臺計算機,並且每秒都會對Google執行多少次查詢,那麼每臺服務器都必須處理大量的請求。

下面是關於這是如何促進一些閱讀:

http://research.google.com/archive/bigtable.html
http://labs.google.com/papers/gfs.html

而在一般情況只是http://research.google.com/,很多很酷的信息出現。

0

他們也有自定義的Web服務器,TCP/IP協議棧[以及基礎設施],我幾年前在某處讀過......我懷疑Apache或IIS或任何其他商業/流行Web服務器是否可以匹配...

4

Moishe是正確的:儘管在Google的規模上提供靜態網頁內容具有足夠的挑戰性,但它很好理解,其他許多人也這樣做。

但是,它確實是Google的開拓者提供的動態內容,因爲他們的論文全部都是開頭的:The Anatomy of a Search Engine。有很多聰明的技巧,其中一些已經在這裏提到,但仍然... ... 任何谷歌查詢,查詢條款不屬於 - 它們不會被緩存 - 你仍然會在幾百毫秒內得到結果集:這絕對是不可思議的。

爲了使它更加複雜,有一個新的SearchWiki功能,這增加了動態內容傳輸到每一個搜索結果,與結果的有限的個性,如果你登錄。

谷歌一直在開拓良好(在某種程度上)使這一切發生的聰明。最後,這一切都歸結爲架構所有東西水平放大。這就是Google能夠跟上互聯網指數增長的方式:只需在BigTable,Map/Reduce和Google文件系統農場添加更多硬件即可。通過使用大量的商品硬件以及圍繞它的良好基礎架構和管理,Google可以承受將整個索引保存在內存中,並且從一臺機器到另一臺機器的查詢比進入磁盤的查詢更快。 Yahoo! Yahoo! Yahoo! Yahoo! Yahoo! Yahoo!騰訊Yahoo! Yahoo! Yahoo!聯盟購買越來越大的單片機,​​直到Sun無法讓它們變得足夠大,他們不得不切換到Hadoop!,太遲了。

在Google上擴展HTTP服務器是一件容易的事情!

相關問題