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