允许 YouTube 规模分布的技术?

use*_*912 33 hosting bandwidth

正如我们所知,Youtube 非常庞大。它有数千个并发用户,每个视频至少流式传输 2 兆字节。显然,这会带来大量流量……对于任何一台服务器来说都太多了。

什么网络技术允许每天推送40 亿个视频?

Jef*_*and 50

在后端扩展

在一个非常简单的设置中,一个 DNS 条目转到一个属于一台服务器的 IP。全世界的每个人都使用那台机器。有了足够的流量,在你达到 YouTube 的规模之前,这已经太多了。在一个简单的场景中,我们添加了一个负载均衡器。负载平衡器的工作是将流量重定向到不同的后端服务器,同时显示为一台服务器。

拥有与 YouTube 一样多的数据,期望所有服务器都能够为所有视频提供服务就太过分了,因此我们需要添加另一层间接:sharding。在一个人为的示例中,一台服务器负责以“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 服务器位于加利福尼亚州的圣何塞。

  • 您人为的分片示例是我见过的最好的。出于某种原因,每个人似乎都将这个简单的概念变得复杂起来。 (4认同)

Mik*_*eyB 22

有几种技术可用于大型站点。

www.youtube.com -> 任意数量的 IP 地址

让我们看看DNS:

www.youtube.com is an alias for youtube-ui.l.google.com.
youtube-ui.l.google.com has address 74.125.226.14
youtube-ui.l.google.com has address 74.125.226.0
youtube-ui.l.google.com has address 74.125.226.1
youtube-ui.l.google.com has address 74.125.226.2
youtube-ui.l.google.com has address 74.125.226.3
youtube-ui.l.google.com has address 74.125.226.4
youtube-ui.l.google.com has address 74.125.226.5
youtube-ui.l.google.com has address 74.125.226.6
youtube-ui.l.google.com has address 74.125.226.7
youtube-ui.l.google.com has address 74.125.226.8
youtube-ui.l.google.com has address 74.125.226.9
youtube-ui.l.google.com has IPv6 address 2001:4860:800f::88
Run Code Online (Sandbox Code Playgroud)

因此 www.youtube.com 实际上可以访问多个 IP 地址。

任播 IP 地址

单个 IP 可以由任意数量的自治系统(互联网上的网络)同时处理。例如,许多根 DNS 服务器以及 Google 的8.8.8.8DNS 服务器在全球许多地方都是任播的。这个想法是,如果您在美国,则访问美国网络,如果您在英国,则访问英国网络。

来自不同服务器的媒体

仅仅因为您在 上www.youtube.com,并不意味着所有内容都必须来自同一服务器。就在这个站点上,静态资源是从而sstatic.net不是serverfault.com.

例如,如果我们观看Kaley Cuoco 的 Slave Leia PSA,我们会发现媒体是由v10.lscache5.c.youtube.com.

多个互联网连接

我向你保证,Youtube 有不止一个互联网连接。尽管有所有其他技术,即使 Youtube 真的是一个站点和一个服务器,理论上它也可以连接到它提供视频的每个其他网络。在现实世界中,这当然是不可能的,但请考虑一下这个想法。

任何或所有这些想法(以及更多!)都可用于支持内容交付网络。如果您想了解更多信息,请阅读该文章。


Dan*_*man 11

您错误地认为 YouTube(又名 Google)只有一台服务器;此信息图可能有助于说明支持该服务的系统的规模。

即使您只有一个存在点,您也绝对可以在一个名称甚至 IP 后面拥有多个服务器,使用负载平衡器等工具。

不过,谷歌拥有大量存在点,并使用 AnyCast 之类的工具——一种在互联网上的多个地方发布相同 IP 的技术,并将人们路由到最近的拥有它的服务器池——来支持基础设施。

  • 他们拥有他们中的每一个人。说真的,他们购买 - 好吧,制造,这些天 - 他们。这在某些方面与您想象的一样多,但在其他方面则更少。 (2认同)
  • @ user1034912 - 是的,这是惊人的。但这是*谷歌*,为什么不呢?全球有数以千计的数据中心,谷歌恰好运营着其中的一小部分。 (2认同)