谷歌等网站如何实现高可用?

Chr*_*ris 6 hosting high-availability

据我了解,当我打开一个网站(例如 Google)时,会查找主机名,我的浏览器使用生成的 IP 地址连接到服务器并检索页面。

但是,高可用性网站如何确保始终可以访问此单个 IP 地址?这不是单点故障吗?

Mas*_*imo 7

有两种常见的网站高可用性解决方案:DNS 循环和 IP 负载平衡。

DNS 循环意味着每次向 DNS 服务器查询站点名称时都会获得不同的 IP 地址;这有助于跨多个服务器分发请求,并且还避免了您指出的单点故障。这是www.google.com(当询问“google.com”域的权威名称服务器之一时)的 DNS 答案:

> www.google.com
Server:  ns1.google.com
Address:  216.239.32.10

www.google.com  canonical name = www.l.google.com
www.l.google.com        internet address = 74.125.77.99
www.l.google.com        internet address = 74.125.77.104
www.l.google.com        internet address = 74.125.77.147
Run Code Online (Sandbox Code Playgroud)

另一个可以同时使用的常见解决方案(在这种情况下很可能是这样)是 IP 负载平衡;即这些 IP 地址实际上并未分配给服务器,而是分配给负载平衡设备(或反向代理,或任何其他类似解决方案),然后将请求转发到多个后端服务器之一;如果其中一台服务器出现故障,将使用另一台。

更多信息在这里:

http://en.wikipedia.org/wiki/Round_robin_DNS
http://en.wikipedia.org/wiki/Load_balancing_(计算)

  • -1 有一个原因 - DNS 循环不是一种高可用性解决方案。它将负载分配到所有 IP 地址,无论它们是否可用。 (6认同)
  • 我相信你也可以添加 DNS Anycasting (3认同)
  • 实际上考虑到谷歌的规模,它不止于此。 (2认同)
  • BGP 也是关键。真的,太笼统的问题了。我们可以整天挑剔细节。 (2认同)