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