以Google.com为例。如果它在任何时间点最终解析为单个IP,则数据包将落在单个服务器上。即使它只是发送重定向响应(用于传输其他服务器的负载),它仍然必须能够每秒处理数十万个请求。
我可以想到一些非标准的方法来处理这个问题。例如,路由器可以被编程为跨多个服务器对分组进行负载平衡。但它仍然意味着google.com依赖于单个物理设施,因为IP地址无法移植到其他位置。
我希望互联网结构本身有一些处理这类事情的机制。每个域的多个A记录就是这样一种机制。但在研究这个时,我发现google.com的DNS条目只有一条A记录,而且IP值因您查询的网站而异。
怎么做?在哪些方面它更好,为什么谷歌选择这样做而不是有多个A记录?
尝试查找google.com的记录会产生不同网站的不同结果: https://www.misk.com/tools/#dns/google.com解析为216.58.217.142 https://www.ultratools.com/tools/dnsLookupResult解析为172.217.9.206
答案 0 :(得分:1)
这通常使用动态DNS /循环DNS / DNS负载平衡来完成。
假设您在3个不同的位置拥有3台Web服务器。查找完成后,DNS服务器将针对每个请求使用不同的IP进行响应。一些DNS服务器还允许基于策略的配置...其中它可以返回70%的特定IP时间和30%的时间返回一些其他IP。
This document provides reference on how to do this with Windows 2016