我有一个系统,所有传入的请求都被路由到AWS弹性负载均衡器(ELB)。这需要在每个请求的ELB URL上查找DNS名称。我们知道ELB每次都返回一个不同的IP(循环访问几个IP地址),所以我无法真正缓存IP地址并将其用于TTL。
但是,有时这些DNS查找会失败,我们只想在发生这种情况时才使用缓存。请注意,缓存需要始终更新,因此当我们回退到缓存时,它不是旧的缓存条目。
最好的方法是什么?我们可以用某种方式使用dnsmasq吗?
答案 0 :(得分:2)
请重新考虑您的设计。如果您的DNS查询失败,那么您就遇到了网络问题。负载均衡器(通常)设计用于提供高可用性和容错能力。
DNS服务器按设计缓存条目(与您的目标不同)。这由TTL字段控制,但是,许多DNS服务器忽略此值。
如果DNS查询失败,您将如何确定负载均衡器IP地址?找出DNS查询失败的原因,让负载均衡器完成它们的设计工作。
亚马逊负载均衡器没有静态IP地址。单词" Elastic"在弹性负载均衡器中意味着它们负载均衡器在两个方向上扩展:ScaleUp(较大实例)和ScaleOut(更多实例)。当然,当流量下降时,它们会反向(ScaleDown和ScaleIn)。