DNS 级负载均衡

ace*_*ali 2 load-balancing dns-hosting traffic-management

在这个世界上有可能实现 DNS 级别的负载均衡吗?例如,我有一个服务器 A(111.222.333.444)和服务器 B(555.666.777.888),并且有一些第三方 DNS 托管(如 CloudFlare)可以决定服务器 A 是否关闭(或没有响应)然后转移所有到服务器 B 的流量。这不是真正的负载平衡,而是流量分流,我不知道。但有可能吗?

我知道 DNS 传播需要时间,但像 CloudFlare 这样的服务几乎不需要几分钟就可以转移到其他服务器。

有任何想法吗?谢谢。

rep*_*lay 6

DNS 可以很好地用于负载平衡,但它只能做一些简单的循环。

如果您想在 DNS 中实现诸如高可用性解决方案之类的东西,您必须禁用不可用的 IP,为此您需要将 TTL 设置为某个最小值,这不是一个好主意。

一般来说,使用Heartbeat 之类的解决方案是一个更好的主意。

使用 Heartbeat,场景如下所示:

您有服务器 A 和服务器 B。Heartbeat 会持续检查服务器 A 和 B 是否正常。如果 Heartbeat 检测到服务器 A 有问题,它只是将服务器 A 的 IP 分配给服务器 B。因此,服务器 B 正在为这两个 IP 的请求提供服务。

这样,对于用户来说,心跳重新分配 IP 和传播更新的 ARP 所需的服务中断时间只有一两秒钟。这比您传播 DNS 更改要快得多。