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.com
和tc.v19.cache5.c.youtube.com
。那些出现在我正在查看的网页源代码中,并由某种形式的索引服务器提供。现在,在缅因州,我发现 tc19 服务器位于佛罗里达州的迈阿密。在华盛顿,我发现 tc19 服务器位于加利福尼亚州的圣何塞。
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 可以由任意数量的自治系统(互联网上的网络)同时处理。例如,许多根 DNS 服务器以及 Google 的8.8.8.8
DNS 服务器在全球许多地方都是任播的。这个想法是,如果您在美国,则访问美国网络,如果您在英国,则访问英国网络。
仅仅因为您在 上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 的技术,并将人们路由到最近的拥有它的服务器池——来支持基础设施。