2010-12-20 61 views
3

當前我正在使用AWS配置服務器池。這是一個簡單的設置,包含兩臺數據庫服務器,一臺可擴展的服務器陣列和兩臺負載平衡器。每臺機器都有一個故障轉移站,它應該都非常強大。在故障轉移場景中DNS循環非常緩慢的請求

負載均衡器應該能夠通過循環DNS進行故障轉移。因此,在快樂的一天中,兩臺機器都會受到影響,並將流量分配到陣列上。當其中一臺機器出現故障時,Round Robin DNS與客戶端瀏覽器重試結合使用時,應使瀏覽器將其目標主機轉移到一旦達到暫停時仍處於運行狀態的機器。這不是我想出的,但似乎是一個非常好的解決方案。

我遇到的問題如下。這種轉變確實發生,但不僅僅是一次失敗的請求,而是來自同一瀏覽器的每一個後續請求。因此,一個簡單的頁面請求需要21秒才能加載,之後所有圖像也需要21秒才能加載。接下來的所有頁面請求也需要這麼長時間。所以故障轉移工作,但同時完全無用。

挖掘輸出:
; < < >> DiG 9.6.1-P2 < < >> example.com
;;全局選項:+ cmd
;;得到的答案:
;; - >> HEADER < < - 操作碼:QUERY,狀態:NOERROR,ID:45224
;;標誌:qr rd ra; QUERY:1,答案:2,權限:0,附加:0

;;問題部分:
; example.com。 IN A

;;答案部分:
www.example.com。 86400 IN A 1.2.3.4
www.example.com。 86400 IN A 1.2.3.4

;;查詢時間:31毫秒
;;服務器:172.16.0.23#53(172.16.0.23)
;;時間:Mon Dec 20 12:21:25 2010
;;味精大小rcvd:67

在此先感謝!

馬騰胡克斯特拉
Kingsquare信息服務

回答

4

當DNS服務器向客戶端提供IP地址列表時,該列表將被排序(可能以旋轉方式,即隨後的DNS可能會以不同的順序返回它們)。瀏覽器可能會緩存DNS響應,即最初收到的列表。然後它確實而不是假設失敗的連接意味着服務器已關閉,但每次都會以相同的順序重試列表。

因此,輪詢DNS最適合負載均衡;它不太適合支持容錯。

+0

這實際上不同於我以前對DNS循環的客戶端行爲的理解。它完全符合這些症狀,這意味着將IP從DNS中刪除,同時修復機器將是唯一的兩種解決方案。並非真正令人愉快的消息,但仍然感謝 – 2010-12-21 09:46:09

0

有我們所說的一個原因,「窮人的負載平衡。」它可以工作,但你是解析器的仁慈,超時取決於哪個IP首先從dns服務器返回。你可以看看像dnsmadeeasy.com和他們的DNS故障轉移(有其他人這樣做,但dnsmadeeasy是我所知道的)。基本上他們監視應用程序的可用性,並可以在應用程序狀態方面快速改變DNS的變化。

+0

聽起來不錯,但遺憾的是我綁定到不提供此服務的DNS提供商。 – 2010-12-21 09:49:51

+0

你的dns提供者是否提供了設置真正低TTLS並擁有api的能力?你可以添加/刪除記錄。我很驚訝AWS沒有什麼能夠讓池式機器共享IP ..祝你好運... – Doon 2010-12-21 14:47:53