Linux
現代 DNS 負載平衡解決方案
我正在學習分佈式系統,現在我正在研究 DNS 負載平衡主題。
我的 Linux 伺服器很少,我想設置下一個配置:
- 一個 DNS 負載均衡器,用於解析負載較小的伺服器的 IP 地址;
- 處理使用者請求並將自己的負載統計資訊發送到 DNS 負載平衡器的多個應用程序伺服器。
我google了一段時間,發現lbnamed似乎是根據dlbDNS的想法建構的,可以做我需要的。我對此感到困惑的是,它似乎停滯了一段時間(自 2006 年以來沒有更新),儘管有評論說它幾乎沒有問題。我也找不到任何其他解決方案。所以我想也許我在Google上搜尋了一個錯誤的東西,或者這樣的功能可能包含在一些廣泛傳播的應用程序中,比如綁定。
所以我的問題是:現在 DNS 負載平衡方法是否可行,可以使用哪些現代解決方案(應用程序)?
提前致謝!
大多數基於 DNS 的負載平衡並不多應用於單個數據中心內的集群,而是更常用於將使用者指向地理位置附近的應用程序實例。
DNS 的問題在於記錄被記憶體,通常比 TTL 還要長,這意味著當您更新集群的配置和 DNS 時,客戶端可能仍會被定向到不活動/無響應的節點。
這意味著,只要需要清除 DNS 記憶體,就會有越來越少的使用者遇到暫時性問題。
這可以完全接受或不接受。它還取決於您的應用程序是公共應用程序還是在公司 Intranet 上,並且您的客戶端例如專門使用 Active Directory 域控制器作為 DNS 伺服器。
DNS 負載平衡的第二個可能問題是,許多使用者可以使用單個記憶體名稱伺服器,因此您的名稱伺服器接收的 DNS 查詢數量可能與您的請求數量無關。
所以不,在您的情況下,您最好使用第 3 層、網路負載平衡或可能類似於 HAproxy 的東西,而不是 DNS 負載平衡。