首先,我已经读过以下文章:负载平衡器本身的高可用性
但这个问题还不够深入。
DNS负载平衡似乎是在负载平衡器之间分配流量的唯一方法。(除了使用负载均衡器之外,如果所有负载最终都要经过一个服务器,它显然不会对负载进行任何分配)
这似乎是滥用DNS协议。我的理解是DNS是为名称解析而设计的,而不是负载平衡。如果我想要一个除了循环之外更复杂的负载平衡算法呢?这是在负载均衡器之间分配流量的唯一方法吗?如果这不是唯一的方法,还有什么其他的方法?
诚然,这看起来确实很有效,而且对所有大公司来说都是目前的标准,对吗?
发布于 2021-11-24 08:46:28
不,DNS不是在负载平衡器之间切换的唯一方法。
考虑一下这个多层负载均衡器设计。可伸缩和弹性。
在DNS规范中聪明地返回结果,因此可以实现健康检查、基于geo IP的结果和其他动态特性。gdnsd是一个权威的DNS服务器,它可以做这样的事情。
然而,DNS是严重缓存的,因此更改速度很慢。古怪的、不一致的客户端行为也使得DNS循环变得不切实际。因此,DNS可能仅限于查找前门,即负载均衡器主机所在的正确区域。激活灾难恢复环境将具有破坏性,但DNS更改可以切换到一个完全独立的基础设施中。
发布于 2021-11-24 09:00:05
实际上,DNS中最基本的解决方案就是简单地设置具有不同值的相同类型的多个记录,并让您的名称服务器在客户端请求该资源记录时将所有记录返回给客户端。
其效果通常被称为圆知更鸟DNS,尽管它有一些缺点,但DNS服务器和客户端都很好地支持它。使用该技术的问题可能适用于所有DNS负载平衡解决方案。
除了帕特里克的回答之外,一些DNS服务器还内置了更多的智能。不是返回所有记录的完整集合,而是对响应进行调优。一些算法是:
但是,除了基于DNS的解决方案之外,还有许多其他方法。
https://serverfault.com/questions/1084417
复制相似问题