DNS轮循

DNS轮循（）是一种用于负载分配、负载平衡或容错配置多个冗余网际协议（IP）服务主机（例如Web服务器、 ）的技术，通过适当的统计模型管理域名系统 (DNS) 响应客户端计算机对地址的请求。

在其最简单的实现中，DNS轮循响应DNS请求的返回结果是多个服务器对应的潜在IP地址列表，而不是单个潜在IP地址。返回列表中IP地址的顺序是术语轮循（）的基础。对于每次DNS响应，列表中的IP地址的顺序都会被置换。 传统上，IP客户端最初尝试使用从DNS查询返回的第一个地址进行连接， 这样在不同的连接尝试中，客户端将接收来自不同服务器的服务，从而将整体负载分配到不同服务器之间。

一些DNS解析器在实现上尝试重新排序列表，以优先考虑IP地址在数字上“更接近”的网络。这种行为在IPv6的定义过程中被标准化，但也被指责会破坏基于轮循的负载均衡。一些桌面客户端会在连接超时30秒后尝试备用地址。

DNS轮循通常用于在多个Web服务器之间对请求进行负载平衡。例如，一家公司拥有一个域名和相同网页但部署在三个IP地址的三台服务器。这时，设置DNS服务使域名有多个A记录，每个IP地址对应一个。当第一个用户访问网页时，请求将被发送到第一个IP地址。第二个访问主页的用户将被发送到下一个IP地址，第三个用户将被发送到第三个IP地址。在每种情况下，一旦给出IP地址，它就会进入列表的末尾。因此，第四个用户将被发送到第一个IP地址，依此类推。

缺点 
尽管易于实现，但DNS轮循有许多缺点，例如DNS的分层结构中的缓存记录，以及客户端地址的缓存和重用，这些缺点的组合可能难以管理。同时，不应仅依赖DNS轮循来保障服务的可用性。如果列表中某个地址的服务故障，DNS仍然会继续分发该地址，客户端仍将尝试连接无法访问的服务。

DNS轮循本身可能不是负载均衡的最佳选择，因为只是在每次查询名称服务器时交替地址记录的顺序。由于DNS轮循不考虑业务时常、服务器负载和网络拥塞，所以它最适将大量连接均匀分配到相同容量的服务器上。在其他情况下，它只会进行负载分配，而不是负载均衡。

存在克服这些限制的方法。例如，修改过的DNS服务器（例如 lbnamed ）可以定期轮循镜像服务器的可用性和负载因素。如果服务器的回复不符合预设参数，则可以暂时从DNS池中移除该服务器，直到下次报告符合参数。

参见 
任播

参考 

負載均衡
容错计算机系统
網路術語
域名