1. 程式人生 > 實用技巧 >程式架構探討—004 應用伺服器叢集的伸縮性之DNS域名解析負載均衡

程式架構探討—004 應用伺服器叢集的伸縮性之DNS域名解析負載均衡

DNS域名解析是利用DNS處理域名解析請求的同時進行負載均衡處理的一種方案。
如下圖,
程式架構探討—004 應用伺服器叢集的伸縮性之DNS域名解析負載均衡

在DNS伺服器中配置了多個記錄:
www.buzhidao.com IN A 192.100.80.1、
www.buzhidao.com IN A 192.100.80.2、
www.buzhidao.com IN A 192.100.80.3。
每次請求,域名解析請求都會根據負載均衡演算法計算出一個不同IP地址返回,這樣A記錄中配置的多個伺服器就構成一個叢集,並實現負載均衡。以上圖為例,使用者請求域名www.buzhidao.com,DNS根據A記錄和負載均衡演算法得到一個IP地址:192.100.80.3,返回給瀏覽器;瀏覽器根據該IP地址,訪問真實物理伺服器192.100.80.3.

DNS域名解析負載均衡的優點是將負載均衡的工作交給了DNS伺服器,省掉了網站管理維護負載均衡伺服器的麻煩,同時許多DNS還支援基於地理位置的域
名解析,也就是會將域名解析成距離使用者地址位置最近的一個伺服器地址,可以加快使用者訪問速度,提高效能。但是DNS域名解析負載均衡也有缺點,目前DNS是多級解析,每一級DNS都可能快取A記錄,當需要下線一臺伺服器後,即時修改了DNS的A記錄,要使其生效也需要較長時間,這段時間DNS依然會將域名解析到已經下線的伺服器,導致使用者訪問失敗;而DNS負載均衡的控制一般都在域名服務商處,網站無法對其做更多改善和管理。
實際上,大型網站總是部分使用DNS域名解析,利用域名解析作為第一級負載均衡手段,即域名解析得到的一組伺服器並不是實際提供服務的物理伺服器
,而是同樣提供負載均衡的內部伺服器,這組內部伺服器,再進行負載均衡,將請求分發到實際的提供伺服器的伺服器上。

轉載於:https://blog.51cto.com/yangyoushan/2175821