2017-10-18 90 views
-1

我有一个系统,所有传入请求都路由到AWS弹性负载均衡器(ELB)。这需要在每个请求的ELB URL上进行DNS名称查找。我们知道ELB每次都会返回一个不同的IP地址(因为robins有几个IP地址),所以我无法真正缓存IP地址,直到TTL才使用它。DNS故障转移缓存遇到DNS查找失败 - AWS ELB

但是,有时这些DNS查找会失败,我们只想在发生这种情况时使用缓存。请注意,缓存需要始终更新,因此当我们回退到缓存时,它不是旧的缓存条目。

这样做的最好方法是什么?我们可以以某种方式使用dnsmasq吗?

回答

2

请重新考虑您的设计。如果你的DNS查询失败,那么你有一个网络问题。负载平衡器(通常)旨在提供高可用性和容错能力。

DNS服务器按设计缓存条目(与您的目标不同)。这由TTL字段控制,但是,许多DNS服务器忽略此值。

如果您的DNS查询失败,您将如何确定负载均衡器IP地址?找出您的DNS查询失败的原因,并让负载均衡器完成他们设计的工作。

Amazon负载均衡器没有静态IP地址。 Elastic Load Balancer中的“Elastic”一词意味着它们的负载平衡器在两个方向上缩放:ScaleUp(更大的实例)和ScaleOut(更多的实例)。当然,当流量下降时,他们会做相反的事情(ScaleDown和ScaleIn)。

+0

澄清这一点。这是一个间歇性的DNS故障问题,我们的流量非常高,所以这是非常可能的。这是另一个AWS组件,因此如果存在网络问题,它就在AWS中。请求量非常高,所以我们可以有一个二级缓存,在VPC中的.2个IP地址的调用失败时保持更新,我们希望能够使用缓存的IP地址进行缓解。 –