我知道“循环 DNS”负载平衡,但单个 IP 地址如何实现负载平衡?
8.8.8.8
例如,Google 的 DNS 服务器8.8.4.4
。维基百科的负载平衡文章指出:
对于互联网服务,负载均衡器通常是一个软件程序,它监听外部客户端连接以访问服务的端口。负载均衡器将请求转发到“后端”服务器之一,后者通常会回复负载均衡器。
..当与循环 DNS 一起使用时这似乎是合理的,但是对于 Google 的 DNS 服务器来说,这似乎不是一个非常冗余或有效的设置。
答案1
http://en.wikipedia.org/wiki/Anycast
任播是一种网络寻址和路由方法,其中来自单个发送者的数据报被路由到一组潜在接收者中拓扑上最近的节点,尽管它可能被发送到多个节点,所有节点都由相同的目标地址标识。
...
几乎所有互联网根名称服务器都是使用任播寻址作为主机集群实现的。13 个根服务器 AM 中的 12 个位于多个位置,其中 11 个位于多个大洲。(根服务器 H 位于美国的两个位置。根服务器 B 位于一个未指定的位置。)具有多个位置的 12 个服务器使用任播地址公告来提供分散服务。这加速了美国境外物理(而非逻辑)根服务器的部署。RFC 3258 记录了使用任播寻址来提供权威 DNS 服务。许多商业 DNS 提供商已切换到 IP 任播环境,以提高查询性能、冗余度并实现负载平衡。
答案2
在单个(或多个)IP 上对服务进行负载平衡与 DNS 解析无关。它与路由器(或充当路由器的服务器)一起工作,监听外部接口上的端口,该端口作为单个服务器传播,例如 www.someplace.com,然后将该流量重新路由到内部服务器,根据其自身设置中定义的规则进行平衡。因此,客户端始终连接到负载平衡路由器,此后流量只会传播到内部服务器,这与循环 DNS 平衡相反,在循环 DNS 平衡中,客户端直接连接到 DNS 引用的服务器之一。