Answers:
DNS循环并不是负载均衡器的良好替代。DNS服务器将继续分发发生故障的节点的IP,因此您的某些用户可以使用您的服务,而某些用户则不会。
当客户端进行DNS查询时,DNS服务器将返回与该名称关联的所有 IP地址。DNS服务器通过旋转每个查询的列表顺序来解决问题。但是,由应用程序来实现在列表中“遍历”功能,直到找到有效的IP。而且大多数应用程序都不这样做。
奇怪的是,Windows Telnet是这样一种应用程序,它足够聪明,可以遍历返回的IP的链接列表。例如,如果您尝试通过telnet到google.com,则可以自己看到此行为。您会注意到,最终失败需要很长时间。那是因为google.com有很多IP地址,而telnet客户端正在尝试每个IP地址。
使用负载均衡器仍然会留下单点故障。如果您的负载均衡器离线,则您的网站将关闭。
Conterary上述答案,大多数HTTP客户端已经DO支持,试图从一个DNS查询返回到一个有效的响应的一个回报每一个IP地址。请在这里查看:
http://blog.engelke.com/2011/06/07/web-resilience-with-round-robin-dns/
看来作者已经测试了以下浏览器,并发现它们能正常工作。
Windows 7上的Chrome 11 Windows 7上的
Firefox 4.0 Windows 7上的
Internet Explorer 8 Windows 7上的
Opera 11 Windows 7上的
Safari 5
Windows XP上的Internet Explorer 7(明显延迟后)
Windows XP上的Firefox 4.0(明显延迟后)
Android本机浏览器在Android 2.3.3
上的iOS 4.3.3上的iPhone本机浏览器
使用轮询不会实现负载平衡服务器的所有功能,例如能够监视两台服务器的响应时间,以及将更多流量路由到一个服务器,如果另一个服务器的响应速度不如预期的话。为了提高弹性,我想说Round Robin DNS可能是一个更好的解决方案,因为不再存在单点故障。