我已经阅读了 serverfault 以及其他网站上关于这些内容的许多帖子。
我的理解是,多个 A 记录(循环 DNS)可以用于:
负载共享(循环,但不是负载平衡)。很多人说“负载平衡”,但我认为不会有负载平衡,因为“平衡”的字面意思是“比较两个(或更多)并进行调整”(这就是真正的软件或硬件负载平衡器所做的),但浏览器从来不会这样做,而是随机选择一个 IP 并连接到它。它不知道该服务器的当前负载(可能,它选择的 IP 负载最高!)。
自动故障转移(仅限最新浏览器)。是的,我认为 DNS 可以用作一个简单的故障转移系统(至少在 2012 年,我不知道它何时真正“生效”)。请参考:https://webmasters.stackexchange.com/questions/10927/using-multiple-a-records-for-my-domain-do-web-browsers-ever-try-more-than-one和 使用多个 A 记录的基于浏览器的 DNS 故障转移 和http://www.nber.org/sys-admin/dns-failover.html
我想确保我的假设/发现是正确的。所以请告诉我......
答案1
如果您想要真正的 Web 服务器负载平衡,那么您应该考虑使用 Haproxy。它使用反向代理和故障转移系统(保持活动和心跳)效率很高,Haproxy 负载平衡器将作为 Web 服务器的前端服务器。
要了解有关 Haproxy 的更多信息,您应该阅读 http://haproxy.1wt.eu/download/1.2/doc/haproxy-en.txt和http://www.howtoforge.com/high-availability-load-balancer-haproxy-heartbeat-fedora8
答案2
在负载共享中,我们会在多条路径上共享流量,即使方式不均衡。负载平衡用于实现网络效率。它在具有多条路径的网络中均匀地分配流量,这样做是为了获得最佳资源利用率、最大化吞吐量并最小化响应时间。所以这两者实际上是不同的东西。与 DNS(域名服务器)一起使用时,循环是一种负载平衡方法,尽管它有一个缺点,即它不会报告节点的自动故障转移,但即使如此,也存在可以改进循环技术的技术。