【前五篇】系列文章傳送門:html
爲何在地址欄輸入域名,就能直接訪問到對應服務器?全局負載均衡和內部負載均衡又是什麼?這些都和 DNS 解析息息相關,讓咱們一塊兒來解密 DNS 解析。數據庫
其實提及 DNS 解析,應該都知道它很像地址簿。就像咱們去一家新開的沃爾瑪超市,經過地址簿查出來沃爾瑪在哪條路多少號,而後再去找。編程
在網絡世界中,也是這樣的。咱們能夠記住網站的名稱,可是很難記住網站的 IP 地址,所以須要一個「地址簿」,幫咱們將網站名稱轉換成 IP。這個「地址簿」就是 DNS 服務器。緩存
對於 DNS 服務器而言,全球每一個人上網,都須要訪問它。 而全球的網民數,據最新統計,已經有 40 億,每一個人都訪問它,可想而知 DNS 服務器會有很大的訪問流量壓力(高併發)。 並且,它還很是重要,一旦出了故障,整個互聯網都將癱瘓(高可用)。 此外,上網的人分佈在全世界各地,若是你們都去同一個地方的某一臺服務器,時延將會很是的(分佈式)。服務器
所以,DNS 服務器必定要具有高可用、高併發、分佈式的特色。網絡
基於此,DNS 服務器設計成樹狀的層次結構。以下圖:併發
上面說了 DNS 服務器面臨大流量訪問的壓力,所以,爲了提升 DNS 的解析性能,不少網站都會就近部署 DNS 緩存服務器。因此,咱們常見的 DNS 解析流程就變成了:負載均衡
至此,咱們完成了 DNS 的解析過程,整個過程以下圖:分佈式
站在客戶端角度,上述過程是一次 DNS 遞歸查詢過程。由於本地 DNS 全權爲它代勞,它只要坐等結果就行了。在這個過程當中,DNS 除了能夠經過名稱映射爲 IP 地址外,它還能夠作另一件很重要的事 - 負載均衡。高併發
仍是拿咱們逛沃爾瑪超市爲例。它可能在一個城市裏會有多家店,咱們要逛沃爾瑪,能夠就近找一家,而不用都去同一家,這就是負載均衡。
DNS 作負載均衡也有花樣能夠玩。 1)DNS 作內部負載均衡 所謂的內部負載均衡,其實很好理解。就像咱們的應用訪問數據庫,在應用裏配置的數據庫地址。若是配置成 IP 地址,一旦數據庫換到了另一臺機器,咱們就要修改配置。若是咱們有不少臺應用同時連一個數據庫,一換 IP,就須要將這些應用的配置所有修改一遍,是否是很麻煩?因此,咱們能夠將數據地址配置成域名。在更換數據庫位置時,只要在 DNS 服務器裏,將域名映射爲新的 IP 地址就能夠了。
在這個基礎上,咱們能夠更進一步 。例如,某個應用要訪問另一個應用,若是配置另一個應用的 IP 地址,那麼這個訪問就是一對一的。可是當被訪問的應用因流量過大撐不住的時候,咱們就須要部署多個應用。這時候,咱們就不能直接配置成 IP,而是要配置域名了。只要在域名解析的時候,配置好策略,此次返回一個 IP,下次返回第二個 IP,就實現了負載均衡。
2)DNS 作全局負載均衡 爲了保證咱們應用的高可用性,每每會將應用部署在多個機房,每一個地方都會有本身的 IP 地址。當用戶訪問某個域名的時候,這個 IP 地址能夠輪詢訪問多個數據中心。若是一個數據中心由於某種緣由掛了,只要將這個 IP 地址從 DNS 服務器中刪掉就能夠了,用戶不會訪問到宕機的服務器,保證了應用的可用性。
另外,咱們確定但願用戶能訪問就近的數據中心。這樣客戶訪問速度就會快不少,體驗也會好不少,也就實現了全局負載均衡的概念。
咱們經過 NDS 訪問數據中心對象存儲上的靜態資源爲例,來看一看整個過程。
假設全國有多個數據中心,託管在多個運營商,每一個數據中心有三個可用區。對象存儲能夠經過跨可用區部署,實現高可用性。在每一個數據中心中,都至少部署兩個內部負載均衡器,內部負載均衡器後面對接多個對象存儲的前置服務器(Proxy-server)。那麼,請求過程以下圖:
對於不須要作全局負載均衡的簡單應用來說,yourcompany.com 的權威 DNS 服務器能夠直接將 object.yourcompa.com 這個域名解析爲一個或者多個 IP 地址,而後客戶端能夠經過多個 IP 地址,進行簡單的輪詢,實現簡單的負載均衡。
可是對於複製的應用,尤爲是跨地域跨運營商的大型應用,就須要更加複雜的全局負載均衡機制,於是須要專門的設備或者服務器來作這件事情,這就是全局負載均衡器(GSLB,Global Server Load Balance)。
在 yourcompany.com 的 DNS 服務器中,通常是經過配置 CNAME 的方式,給 object.yourcompany.com 起一個別名。例如 object.vip.yourcompany.com,而後告訴本地 DNS 服務器,讓它請求 GSLB 解析這個域名,GSLB 就能夠在解析這個域名的過程當中,經過本身的策略實現負載均衡。
上圖中畫了兩層的 GSLB,是由於分運營商和地域。咱們但願不一樣運營商的客戶,能夠訪問對應運營商機房中的資源,這樣不跨運營商訪問,有利於提升吞吐量,減小時延。兩層 GSLB 的過程以下:
參考:
原文出處:https://www.cnblogs.com/BeiGuo-FengGuang/p/10176702.html