2017-10-18 195 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地址進行緩解。 –