为了我的求知欲,我试图了解像 Facebook 或 Wikipedia 这样的大型网站是如何运作的。我阅读了有关构建可扩展站点的各种技术,但我仍然对一个特定的细节感到困惑。
让我感到困惑的部分是,DNS 最终会将整个域映射到一个 IP 地址,或者在循环 DNS 的情况下映射到少数 IP 地址。
例如,wikipedia.org 只有一个 A 类 DNS 记录。因此,来自世界各地的访问维基百科的人必须向 DNS 中指定的一个 IP 地址发送请求。
侦听大型站点 IP 地址的硬件是什么,它如何处理来自全球用户请求的所有负载?
编辑1:感谢所有回复!任播似乎是一个可行的答案......有谁知道检查特定IP地址是否是任播路由的方法,以便我可以验证这真的是大型网站在实践中使用的技巧吗?
编辑 2:在对该主题进行了更多阅读之后,看来任播通常不用于动态 Web 内容。Anycast 通常用于 UDP(例如,DNS 查找),或者有时用于静态内容。
需要注意的一件有趣的事情是 Facebook 使用 profile.ak.fbcdn.net 来托管静态内容,例如样式表和 javascript 库。每次我 ping 此名称时,我都会收到来自不同 IP 地址的响应。但是,我不知道这是实际中的任播,还是完全不同的技术。
回到我最初的问题:据我所知,即使是大型站点也会有一个昂贵的负载平衡硬件来监听其少数公共 IP 地址。