题 Google等网站如何实现高可用性? [关闭]


据我所知,当我打开像Google这样的网站时,会查找主机名,我的浏览器会使用生成的IP地址连接到服务器并检索页面。

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


7
2017-09-13 20:42




您的问题含糊不清,难以合理地回答其当前形式。高可用性是一个涉及众多方法的广泛主题。 - Warner
华纳是完全正确的。就目前而言,你的问题对于任何有意义的答案来说都太模糊了。任何答案都可能产生多个额外的问题。我建议你google,查看一些维基百科页面,甚至搜索现有的服务器故障问题,然后回过头来提出更具体的问题,涵盖你不理解的主题。 - ThatGraemeGuy
他们是如何做到的呢?有很多钱。 - joeqwerty
[叹]。一个非常合理和具体的问题(如何在没有SPOF的情况下创建一个网站?)嘲笑和关闭,没有提供一个明确的答案。我没有比我到达更聪明。 - Mark Amery


答案:


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

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

> 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

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

更多信息:

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


8
2017-09-13 20:55



实际上,考虑到谷歌的规模,它不止于此。 - TomTom
我相信你也可以加入DNS Anycasting - Mark Henderson♦
-1由于一个原因 - DNS循环不是高可用性解决方案。它将负载分配给所有IP地址,无论它们是否可用。 - TomTom
BGP也是关键。真的,这个问题太笼统了。我们可以整天挑选细节。 - Warner
这是我正在寻找的答案,我不知道有这样的东西,如DNS循环!谢谢! - Chris


IP地址不一定是SPOF,因为如果前一个服务器出错,它肯定可以动态地重新影响(例如,故障转移)到健康的服务器。


1
2017-09-13 21:02





Google最有可能同时使用三种方法:

  • 在后端,您有许多服务器来处理请求。他们拥有自己的IP地址。
  • 在它们前面是硬件负载平衡器,它们将reuqests分配给它们后面的服务器。它们各有一个公共IP,但可能覆盖30,60甚至更多物理服务器。它们本身可能是大型制造商的冗余。
  • 在前面DNS Round Robin是可以使用的。允许负载分配到更多的负载压缩器。

实际上所有这些都很好地描述了。

http://en.wikipedia.org/wiki/Google_platform

请注意,我们谈论的是成千上万的服务器。许多数据中心都充满了东西。

谷歌非常特别,因为服务器几乎都是只读的。他们获得索引的副本,并在使用新的更新副本重新映像之前将其服务。没有对应答群集进行任何更新。这对于一个应用来说是不寻常的 - 但不是因为谷歌是聪明的,只是因为他们的要求是不寻常的。


1
2017-09-13 22:29



嗯,这可能是 也 因为谷歌很聪明。 - mfinni
在这种情况下不仅 - 它们的简单尺度几乎使它成为唯一可行的方法。服务器的数量非常高,但是......它们都很相似,只需要它们;) - TomTom
这对我来说没有意义。当然,在负载均衡器而不是服务器上建立IP点只会将负载均衡器转变为单点故障而不是服务器,而不是 消除 单点故障? - Mark Amery
好吧,学习吧。不,不一定。例如,WIndows有一个IP负载均衡器。放入4台机器。然后HA资源处于第5个IP(!)并动态处理。该级别的HA是一个已解决的问题 - 在Google中查找产品的文档是一个问题,您显然还没有解决。 - TomTom


高可用性站点使用许多技术,就像DNS根服务器一样,可以随时访问。

事实上,为了安全的攻击和失败,我们可以部署许多解决方案:

  • 任播解决方案
  • DNS加载balacing
  • 负载均衡和反向代理。
  • 故障转移解决方案

0
2017-09-14 00:51