像Youtube这样的大公司如何平衡只有一个IP的stream量

检查youtube.comAlogging(例如),我只看到一个IP地址。

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

他们使用任何负载均衡器背后?

有几个function可能有助于你所看到的:

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

任播和地理平衡将有助于传播负载,而无需用户看到多个或几个IP。 负载平衡器将有助于在一个数据中心内实现可靠性,因此这些less数IP有望不会出现单点故障。

现实不适合这个问题

尽pipe在评论中有问题和确认,但我看到更多的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 

与youtube这样的大型网站有一些策略:

  • 不是每个人都有相同的IP地址。 不同的DNS请求会得到不同的Alogging。 有时根据地理指标返回不同的IP地址(你会得到一个“接近你”的IP),有些变化只是为了负载平衡的目的。

  • 实际上很less请求去“主”站点。 如果您查看youtube.comyoutube.com请求的页面的全套请求,则会注意到绝大多数请求都转到其他域,这些域是分开处理的。

  • 很多很多的负载平衡器。 一旦请求到达一个IP地址,非常高效和高度可扩展的负载平衡器将请求引导到大量的前端Web服务器。

  • 许多机器服务于一个请求。 前端Web服务器在实际服务请求中所做的工作很less。 它们主要用于HTTPparsing和路由到更多层的服务器,每个服务器集群都是生成一个页面的较大任务中的一小部分。 我没有手头的参考资料,但是我记得几年前读过一篇文章,说每一个谷歌search请求都会导致代码在一百多台服务器上运行,以产生响应。

希望能为您解决一些问题。 如果您还有其他问题,最好创build一个新的,明确的问题,而不是在评论中进行冗长的讨论。

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

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

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

当然,这些服务器并不掌握Google的所有知识; 他们是一个前端,也可能有相当多的caching等等。 任何他们不知道的东西,他们会像前面描述的那样,转发到Google的数据中心。