官术网_书友最值得收藏!

2.1.4 DNS輪詢負載設計

DNS(Domain Name System,域名系統)是互聯網的一種服務,它將域名和IP地址進行映射存儲,當用戶訪問某個域名時能夠快速找到對應的IP地址,使用戶更加方便地訪問互聯網。

互聯網應用訪問流程包括以下3個步驟,如圖2-12所示。

(1)客戶端使用域名(yinhongliang.com)請求服務器時,需先請求DNS服務進行域名解析。

(2)DNS服務通過查找域名注冊表,找到域名所對應的IP地址(10.3.1.33),返回給客戶端。

(3)客戶端使用IP地址(10.3.1.33)再去訪問服務器的應用。

圖2-12 DNS解析

然而,單個服務器節點不但存在單節點風險,而且能夠支撐的最大并發連接數十分有限,可以借助DNS進行負載,從而使服務支持水平擴展。

將域名與多個IP地址進行綁定(例如,yinhongliang.com這個域名與10.3.1.33、10.3.1.34、10.3.1.35三個域名綁定),用戶每次發起請求時DNS服務都按照順序依次返回域名所對應的IP地址,從而達到了服務輪詢負載的目的,如圖2-13所示。

圖2-13 DNS輪詢負載

也可以針對不同的地區、運營商綁定不同的IP地址。這樣,全國各地的用戶進行訪問時,可以盡量將用戶的請求解析到距離最近的服務器,從而加快響應速度。

這種架構雖然解決了水平擴展問題,卻將服務器直接暴露在互聯網上,并且吞吐量依然不足,可以采用DNS+多級負載的方式架構。

可以將域名綁定在負載均衡器LVS的IP地址上,這樣通過DNS解析后,用戶的請求就會通過LVS和Nginx的多級負載,無須暴露真正的后端服務,極大地提高了系統的安全性、可用性和并發能力,如圖2-14所示。

DNS解析負載的最大問題是,沒有自動監測能力,無法幫助應用自動完成故障轉移。例如,某個服務節點宕機,由于DNS沒有主動探測機制,不會自動將無法訪問的服務節點IP從DNS列表中移除,所以用戶依然會請求到宕機的服務。

當系統發生故障時,需要手動修改域名解析配置,由于DNS存在緩存,并不能立即生效,所以還會有一段時間服務不可用。

圖2-14 DNS+多級負載架構

主站蜘蛛池模板: 岫岩| 清流县| 榆树市| 鸡东县| 十堰市| 视频| 大兴区| 永靖县| 简阳市| 卓资县| 克拉玛依市| 石楼县| 林州市| 墨竹工卡县| 泸州市| 浮梁县| 迁安市| 浦北县| 奎屯市| 双柏县| 云和县| 都昌县| 常宁市| 五华县| 永定县| 双牌县| 景泰县| 美姑县| 海兴县| 云浮市| 河西区| 靖宇县| 潮州市| 环江| 邛崃市| 视频| 璧山县| 东乌| 泾源县| 钦州市| 尚义县|