Youtube 等大公司如何仅使用一个 IP 来平衡流量?

Youtube 等大公司如何仅使用一个 IP 来平衡流量?

检查(例如)A的记录,我只看到一个 IP 地址。youtube.com

考虑到他们处理的流量,这怎么可能呢?

他们是否使用带有负载均衡器的任播?

答案1

有几个特征可能造成了您所看到的情况:

  • 任播可以允许一个IP由多个位置的服务器提供服务。
  • 地理平衡根据您所在区域以及数据中心的负载情况提供不同的 IP
  • 负载均衡器通常包括某种热 IP 故障转移提高可靠性

任播和地理平衡将有助于分散负载,而无需用户看到多个或几个 IP。负载平衡器将有助于提高一个数据中心内的可靠性,因此这些少数 IP 不太可能出现单点故障。

现实与问题不符

尽管在评论中提出了疑问和确认,但我看到了更多 YouTube 的 IP:

$ dig youtube.com A

; <<>> DiG 9.8.1-P1 <<>> youtube.com A
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 195
;; flags: qr rd ra; QUERY: 1, ANSWER: 11, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;youtube.com.           IN  A

;; ANSWER SECTION:
youtube.com.        300 IN  A   173.194.33.163
youtube.com.        300 IN  A   173.194.33.164
youtube.com.        300 IN  A   173.194.33.165
youtube.com.        300 IN  A   173.194.33.166
youtube.com.        300 IN  A   173.194.33.167
youtube.com.        300 IN  A   173.194.33.168
youtube.com.        300 IN  A   173.194.33.169
youtube.com.        300 IN  A   173.194.33.174
youtube.com.        300 IN  A   173.194.33.160
youtube.com.        300 IN  A   173.194.33.161
youtube.com.        300 IN  A   173.194.33.162

;; Query time: 14 msec
;; SERVER: 172.16.0.23#53(172.16.0.23)
;; WHEN: Wed Aug 26 23:45:18 2015
;; MSG SIZE  rcvd: 205

答案2

像 YouTube 这样的大型网站采用了许多策略:

  • 并非每个人都会获得相同的 IP 地址。不同的 DNS 请求将A返回不同的记录。有时根据地理指标返回不同的 IP 地址(您会获得“靠近您”的 IP),而有些变化只是为了负载平衡目的。

  • 实际上,只有极少数请求会转到“主”网站。如果您检查构成从 请求的页面的全套请求youtube.com,您会注意到,绝大多数请求会转到其他域,这些域将单独处理。

  • 大量的负载均衡器。一旦请求到达单个 IP 地址,高效且高度可扩展的负载均衡器就会将请求定向到大量前端 Web 服务器。

  • 许多机器处理单个请求。前端 Web 服务器实际上处理请求的工作很少。它们主要用于 HTTP 解析和路由到更多的服务器层,每个集群只负责生成页面这一大任务中很小的一部分。我手头没有现成的参考资料,但我记得几年前读过一篇文章,说每个 Google 搜索请求都会导致一百多个单独的服务器运行代码以生成响应。

希望这能让你稍微理清一些。如果你还有其他问题,最好创建一个新的、严格指定的问题,而不是在评论中进行冗长的讨论。

答案3

Google/Youtube(以及许多其他公司,特别是 CDN)将服务器与许多 ISP 共置,然后 DNS 将返回这些服务器的 IP 地址。这解释了为什么有些人可能只看到一个 IP,而其他人则看到十几个。

因此,您看到的服务器可能实际上并不位于 Google 数据中心,而是距离您的家/办公室只有几英里,无论 ISP 的头端在哪里。有时,您可以使用 traceroute 实用程序(Windows 中的 tracert)和/或反向 DNS 了解服务器的位置。

因此,这些服务器也不会服务于世界上的所有流量,而只是服务于来自一个城市的流量,有时只服务于该城市内的一个 ISP 的流量。

当然,这些服务器不容纳全部谷歌的知识;他们是一个前端,可能还有相当多的缓存等。正如 Womble 所描述的,他们不知道的任何内容,他们都会转发到谷歌的数据中心。

相关内容