我有一个系统,所有传入请求都路由到 AWS 弹性负载均衡器 (ELB)。这需要为每个请求在 ELB URL 上进行 DNS 名称查找。我们知道 ELB 每次都会返回不同的 IP(轮询几个 IP 地址),因此我无法真正缓存 IP 地址并在 TTL 之前使用它。
但是,有时这些 DNS 查找会失败,我们只想在发生这种情况时才使用缓存。请注意,缓存需要始终更新,因此当我们回退到缓存时,它不是旧的缓存条目。
最好的方法是什么?我们可以使用 dnsmasq 吗?
请重新考虑您的设计。如果您的 DNS 查询失败,则说明您存在网络问题。负载均衡器的设计(通常)是为了提供高可用性和容错能力。
DNS 服务器按设计缓存条目(这与您的目标不同)。这是由 TTL 字段控制的,但是很多 DNS 服务器忽略这个值。
如果您的 DNS 查询失败,您将如何确定负载均衡器的 IP 地址?找出 DNS 查询失败的原因,并让负载均衡器完成其设计的工作。
Amazon 负载均衡器没有静态 IP 地址。弹性负载均衡器中的“弹性”一词意味着它们的负载均衡器可以在两个方向上扩展:ScaleUp(更大的实例)和ScaleOut(更多的实例)。当然,当流量下降时,它们会执行相反的操作(ScaleDown 和 ScaleIn)。
我也有类似的问题。这个问题有解决办法吗?