通過DNS的負載平衡方案Round-robin DNS[zz]

來源:互聯網
上載者:User

 

迴圈複用DNS負載平衡技術

迴圈DNS(Round-robin DNS)技術是Server Load Balancer最常用的方法之一。最早的負載平衡技術是通過DNS服務中的隨機名字解析來實現的。在DNS伺服器中,可以為多個不同的地址配置同一個名字,這個資料被發送給其他名字伺服器,而最終查詢這個名字的客戶機將在解析這個名字時隨機使用其中一個地址。因此,對於同一個名字,不同的客戶機會得到不同的地址,因此不同的客戶訪問的也就是不同地址的Web伺服器,從而達到負載平衡的目的。

例如,如果希望使用三個Web伺服器來回應對www.cqcc.com的HTTP請求,設它們的IP地址分別是:202.192.99.1,202.192.99.2,202.192.99.3。安裝一個迴圈複用DNS軟體,配置這個軟體使得每次要求解析www.cqcc.com時返回所有三個IP地址。第一次解析結果中返回地址的次序與前面列出的相同,下一次請求則得到稍微不同的答案:202.192.99.2,202.192.99.3,202.192.99.1。再下一次則得到第三個答案:202.192.99.3,202.192.99.1,202.192.99.2。第一個客戶將同202.192.99.1建立串連,因為202.192.99.1是它所看到的第一個IP地址。第二個客戶看到的第一個IP地址是202.192.99.2,因此它將訪問202.192.99.2。同樣,第三個客戶將訪問202.192.99.3……

針對上面例子,可以設定該域的DNS伺服器中關於該域的資料至少包括與下面例子類似的結果:

www1 IN A 202.192.99.1

www2 IN A 202.192.99.2

www3 IN A 202.192.99.3

www IN CNAME www1

www IN CNAME www2

www IN CNAME www3

這裡先為每個電腦定義一個真實名字(www1、www2、www3),然後再為它們定義同一個別名。可以直接針對不同地址設定同一個真實名字(A記錄),只是使用別名的方法易於管理一些。

由於此時反向解析只能針對一台電腦,那麼每個Web伺服器都需要使用ServerName重新定義同一個名字,或者設定名字解析的順序為hosts檔案優先,並在hosts檔案中定義本身為www,以保證每個伺服器的名字設定保持一致。

迴圈DNS具有對客戶機和伺服器透明的優點。在交易處理開始時,它也只執行一次。但是,迴圈DNS常常不能成功,因為中間名伺服器和客戶機軟體(包括應用很廣的瀏覽器)常常將DNS返回的IP地址儲存起來,或忽略存在時間(TTL)值。TTL是一位IP資料位元位,用來指示IP資料報在被丟棄前可以轉寄到其它路由器的時間長度。

由於IP地址儲存的原因,DNS伺服器提供的Server Load Balancer功能被繞過去了,客戶機繼續使用被儲存起來的IP地址,而不去進行重新串連。這就產生了一個“熱點”,在這個“熱點”上,過度使用的伺服器繼續接收額外的接入。

DNS負載平衡的另一個問題是一旦某個伺服器出現故障,即使及時修改了DNS設定,還是要等待足夠的時間(重新整理時間)才能發揮作用,而DNS伺服器並不知道這一點,因此客戶請求將被延遲,或返回一個“無法訪問伺服器”訊息給使用者,在此期間儲存了故障伺服器位址的客戶電腦將不能正常訪問伺服器。

由於DNS資料是具備一個重新整理時間的標誌的,一旦超過這個時間限制到期,其他DNS伺服器就需要和這個伺服器交談以重新獲得地址資料。如果重新整理時間較短,不同地方的DNS伺服器能更新對應的地址,使出現故障的伺服器位址可以及時刪除,使用者仍舊可以被引導到正常的伺服器上,但如果使用者緩衝了故障伺服器的IP地址,這種方法也不能解決問題。同時將到期時間設定的過低將使DNS流量大增,而造成額外的網路問題。

由於迴圈DNS沒有區分連接埠的能力,不能意識到伺服器的可用性並且不能考慮伺服器上的現有負載,無法對伺服器負載進行動態地分析從而使得下一個請求總是由負載最小的伺服器處理,因此迴圈複用DNS還有太多的限制,只能算是一種勉強可接受的Server Load Balancer方案。

儘管存在多種問題,然而它還是一種非常有效做法,當前使用在包括Yahoo在內的很多Web網站上。
  

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.