这个世界上有可能实现DNS Level Load Balancing吗?例如,我有服务器 A (111.222.333.444) 和服务器 B (555.666.777.888),并且有一些第三方 DNS 托管(如 CloudFlare)可以决定服务器 A 是否关闭(或没有响应)然后转移所有到服务器B的流量。这不是真正的负载平衡,而是流量转移,我不知道。但有可能吗?
我知道 DNS 传播需要时间,但像 CloudFlare 这样的服务几乎不需要几分钟就可以转移到其他服务器。
有任何想法吗?谢谢。
DNS 可以很好地用于负载平衡,但它只能做简单的轮询之类的事情。
如果你想在 DNS 中实现类似高可用性解决方案,你将不得不禁用不可用的 IP,为此你需要将 TTL 设置为某个最小值,这不是一个好主意。
一般来说,使用像Heartbeat这样的解决方案是一个更好的主意。
使用 Heartbeat,场景将如下所示:
您有服务器 A 和服务器 B。心跳不断检查服务器 A 和 B 是否正常。如果 Heartbeat 检测到服务器 A 有问题,它会简单地将服务器 A 的 IP 分配给服务器 B。这样服务器 B 就会为两个 IP 的请求提供服务。
这样,对于用户来说,心跳重新分配 IP 和传播更新的 ARP 所需的服务中断只有一两秒。这比传播 DNS 更改要快得多。