Hosting

允許 YouTube 規模分發的技術?

  • April 22, 2013

眾所周知,Youtube 規模龐大。它有數千個並髮使用者流式傳輸每個影片至少 2 兆字節。顯然,這會帶來很多流量……對於任何一台伺服器來說都太多了。

哪些網路技術允許每天推送40 億個影片?

在後端縮放

在一個非常簡單的設置中,一個 DNS 條目轉到屬於一台伺服器的一個 IP。全世界的每個人都使用那台機器。有了足夠的流量,在您達到 YouTube 的規模之前很久就無法處理了。在一個簡單的場景中,我們添加了一個負載均衡器。負載均衡器的工作是將流量重定向到各種後端伺服器,同時顯示為一台伺服器。

有了 YouTube 這麼多的數據,期望所有伺服器都能夠提供所有影片就太過分了,所以我們要添加另一個間接層:分片。在一個人為的範例中,一台伺服器負責以“A”開頭的所有內容,另一台擁有“B”,依此類推。

將邊緣移近

但最終,頻寬變得越來越密集,您將大量數據移動到一個房間中。所以,既然我們超級受歡迎,我們就把它搬出那個房間。這裡重要的兩種技術是內容分發網路和任播

在世界各地都在請求這些大型靜態文件的地方,我不再將直接連結指向我的託管伺服器。相反,我做的是建立一個指向我的 CDN 伺服器的連結。當有人要求觀看影片時,他們會向我的 CDN 伺服器索取。CDN 負責已經擁有影片、從託管伺服器請求副本或重定向我。這將根據網路的架構而有所不同。

CDN 有什麼幫助?好吧,一個 IP 實際上可能屬於分佈在世界各地的許多伺服器。當您的請求離開您的電腦並轉到您的 ISP 時,他們的路由器會將最佳路徑(最短、最快、最低成本……無論度量標準)映射到該 IP。通常對於 CDN,它將位於您最近的第 1 層網路上或旁邊。

所以,我從 YouTube 請求了一個影片。儲存它的實際機器至少是iad09s12.v12.lscache8.c.youtube.comtc.v19.cache5.c.youtube.com。這些顯示在我正在查看的網頁的原始碼中,並由某種形式的索引伺服器提供。現在,我從緬因州發現 tc19 伺服器位於佛羅里達州的邁阿密。在華盛頓,我發現 tc19 伺服器位於加利福尼亞州的聖何塞。

引用自:https://serverfault.com/questions/369058