32

我经常惊叹于我如何能够随时随地从世界任何地方访问 www.google.com,并如此快速地获得返回页面。

当然,他们压缩输出并保持最小的设计——这很有帮助。

但他们必须同时点击数百万次点击位于 DNS 列为“www.google.com”的网络上的框。

所有设置了 Apache 或其他 Web 服务器的人都知道,在您开始同时获得几千个连接之前,一切都很棒而且超级快,更不用说数百万了!

那么,他们是如何做到的呢?我猜他们有一整套服务器机器,但你永远不会知道。刚才我去 Verizon 时,网址是 www22.verizon.com。你永远不会看到“www22.google.com”,永远不会

任何想法他们使用什么特定技术,或者我们非谷歌凡人可以使用什么技术来做同样的事情?

4

8 回答 8

45

google.com、update.microsoft.com 和其他处理惊人高聚合带宽的服务通过 DNS 发挥了很大作用。

BGP Anycast 路由用于从世界各地的多个点公布其 DNS 服务器的 IP 地址。每个 DNS 服务器都配置为将 google.com 解析为地理位置相近的数据中心内的 IP 地址。所以这是基于地理位置的第一级负载平衡。

接下来,尽管对 google.com 的 DNS 查询将只返回少量 IP 地址,但 DNS 服务器会在其响应中快速循环通过大量地址。每个请求 google.com 的客户端都将获得一个特定的答案,并允许将该答案缓存一段时间,但下一个客户端将获得不同的 IP 地址。所以这是第二层负载均衡。

第三,他们使用传统的服务器负载平衡器将会话映射到单个 IP 地址到多个后端服务器。所以这是第三层负载均衡。

于 2008-10-17T02:15:31.217 回答
15

这篇文章可能会让你感兴趣:

谷歌平台:谷歌网站背后的技术基础设施

于 2008-10-17T02:13:21.767 回答
7

昨晚在奥斯汀的谷歌开放日上,艾伦·尤斯塔斯展示了谷歌在俄勒冈州达尔斯市的数据中心的照片,并说它大约有 3 个足球场那么大。

它是较新的之一,但谷歌有多个数据中心。这不像每个查询都发送到同一台计算机。

即便如此,如果您猜测 Google 拥有多少台计算机,以及每秒对 Google 进行多少查询,那么每个单独的服务器必须处理大量的请求。

以下是有关如何促进这一点的一些阅读材料:

http://research.google.com/archive/bigtable.html
http://labs.google.com/papers/gfs.html

一般来说,只有http://research.google.com/,那里有很多很酷的信息。

于 2008-10-17T02:45:18.460 回答
4

Moishe是对的:虽然简单地以 Google 的规模交付静态 Web 内容已经足够具有挑战性,但它很容易理解,而且很多其他人也这样做。

然而,它确实是动态内容的交付,谷歌是其开拓者,因为他们的论文开始了这一切:搜索引擎的剖析。有很多聪明的技术,其中一些已经在这里提到过,但仍然......在谷歌上做任何查询,查询词不属于一起 - 它们不会被缓存 - 你仍然会得到一个结果在几百毫秒内返回给您:这绝对令人难以置信。

更复杂的是,有一个新的SearchWiki功能,它可以在每个搜索结果中添加动态内容,并且如果您已登录,结果的个性化会受到限制。

谷歌一直擅长(在某种程度上)开放使这一切发生的聪明才智。最后,这一切都归结为构建所有东西以实现水平扩展。这就是 Google 如何跟上 Internet 指数级增长的方式:只需将更多硬件添加到您的 BigTable、Map/Reduce 和 Google 文件系统场。通过使用大量商品硬件,以及围绕它的良好基础设施和管理,Google 可以将整个索引保存在内存中,并且从一台机器到另一台机器的查询比访问磁盘要快。

与此同时,雅虎!购买越来越大的单片机,​​直到 Sun 无法将它们变得足够大,他们不得不切换到 Hadoop!,为时已晚。

扩展 Google 的 HTTP 服务器是最简单的部分!

于 2008-12-26T15:43:44.203 回答
3

http://www.akamai.com

或者,翻译成英文(也许在 Chris 的回答中详细说明),使用具有世界各地节点的内容交付网络 (CDN) - 请注意,这些不仅是数据中心,而且是实际的 Web 服务器(尽管我相信大多数人不会t在区别上做出巨大的骨头)。Akamai 只是一个例子;点击谷歌“内容交付网络”,你一定会找到其他人。

您还可以实施缓存策略,尽管这可能不会让您走得那么远。;)

于 2008-10-17T02:12:24.140 回答
1

除了大型网络农场之外,毫无疑问,他们正在做大量的缓存。他们可以缓存从页面内容到常用搜索词的任何内容。缓存是非谷歌凡人也可以做的事情。

于 2008-10-17T02:14:42.203 回答
0

这是正常的互联网流量处理。从字面上看,谷歌在全球拥有响应 www.google.com 的整个数据中心

于 2008-10-17T02:09:01.403 回答
0

他们也有自定义的 Web 服务器、TCP/IP 堆栈 [连同基础设施],我几年前在某处读过......我怀疑 Apache 或 IIS 或任何其他商业/流行的 Web 服务器是否可以匹配......

于 2008-10-17T03:02:45.023 回答