我遇到的問題如下:我有分散式應用程式(3 個地理分佈節點),它根據請求返回大型資料集。為了減少網路流量,我需要將客戶端請求定向到最近的分散式應用程式實例。我正在考慮幾個選項,但對於每個選項我都有疑問,我將不勝感激您的意見:
選項 1:使用 DNS 解析為多個 IP 位址。例如: - 如果我從英國電腦撥打 server.copmany.com - DNS 將其解析為相關係統的英國 IP 位址。 - 如果我從美國機器撥打電話到 server.copmany.com - DNS 將其解析為相關係統的美國 IP 位址。
問題: 可以這樣配置DNS嗎?
選項2:使用負載平衡器,它可以將IP位址解析到最近的伺服器。
問題:雖然我認為這是可能的,但我無法承受的是透過負載平衡器傳回的回應,而是直接回到呼叫系統。
選項 3:您是否遇到過針對此類問題的任何其他解決方案?
謝謝,麥克
答案1
我會選擇選項#1。
不知道您正在使用哪個 DNS 伺服器,但這可以透過支援 GeoIP 的 BIND 來完成,並且可以為來自不同國家/地區的不同使用者提供多個視圖。谷歌搜尋“BIND GeoIP”將為您提供一堆如何設定它的教程。
否則,有第 3 方服務(關鍵字:「託管 dns、地理位置」)提供此服務。
答案2
如果只是 HTTP,您可以向適當的網站提供 301,而不必執行地理 DNS,這可能更簡單。
可能無法很好地工作的一件事是任播,儘管它可能看起來不錯,但無法(沒有重大幫助)處理客戶端在節點之間切換的情況。
答案3
透過DNS
我知道 Bind 支援視圖,因為我以前用過它們。其他伺服器也可以。您可以根據請求的 IP 位址提供您喜歡的任何區域資訊 -http://www.zytrax.com/books/dns/ch7/view.html
使用循環 DNS 解析三個 IPS 之一。但這並不關心請求來自哪裡
我發現這個谷歌搜尋(http://www.dnsmadeeasy.com/services/global-traffic-director/) - 也許你會覺得有趣