Azure上的負載均衡類產品除了以前介紹的4層負載均衡(請參照《 Azure 上的高可用(1)-負載均衡》),還有一個跨區域的產品,這就是Azure Traffic Manager,和4層負載均衡相比,Azure Traffic Manager 最大的區別是提供跨區域的負載均衡。html
Azure 流量管理器是一種基於 DNS 的流量負載均衡器,能夠在全球 Azure 區域內以最佳方式向服務分發流量,同時提供高可用性和響應性。
git
流量管理器根據流量路由方法和終結點的運行情況,使用 DNS 將客戶端請求定向到最合適的服務終結點。 終結點能夠是託管在 Azure 內部或外部的任何面向 Internet 的服務。 流量管理器提供多種流量路由方法和終結點監視選項來知足不一樣的應用程序需求和自動故障轉移模型。 流量管理器可以靈活應對故障,包括整個 Azure 區域的故障。github
Azure 流量管理器基礎知識視頻介紹:
web
https://v.qq.com/x/page/e3040r6u0dx.htmlapi
流量管理器提供了6種路由方法,包含:緩存
1.優先級(Priority):服務器
流量管理器配置文件包含服務終結點的優先順序列表。 默認狀況下,流量管理器將全部流量發送到主終結點(優先級最高)。 若是主終結點不可用,流量管理器會將流量路由到第二個終結點。 若是主終結點和輔助終結點都不可用,流量會轉到第三個終結點,依此類推。 終結點的可用性取決於配置的狀態(已啓用或已禁用)和正在進行的終結點監視。
網絡
可使用每一個終結點的「priority」屬性顯式配置終結點優先級。 此屬性是一個介於1 和 1000 之間的值。 值越小,優先級越高。 終結點不能共享優先級值。 該屬性的設置是可選的。 若是省略該屬性,會根據終結點順序使用默認優先級。app
2.加權(Weighted):負載均衡
在「加權」流量路由方法中,權重是從 1 到 1000 的整數。 此參數是可選的。 若是省略此參數,流量管理器會使用默認權重「1」。 權重越高,優先級就越高。
對於收到的每一個 DNS 查詢,流量管理器會隨機選擇一個可用終結點。 選擇哪一個終結點取決於分配到全部可用終結點的權重。 對全部終結點使用相同的權重會致使均勻分佈流量。
加權方法能夠實現一些有用的方案:
應用程序逐步升級:分配要路由到新終結點的流量百分比,並隨着時間的推移逐漸將流量增長到100%。
將應用程序遷移到 Azure:建立包含 Azure 終結點和外部終結點的配置文件。 調整終結點的權重,優先選擇新終結點。
適用於更多容量的雲爆發:經過將本地部署放在流量管理器配置文件以後,快速將本地部署擴展到雲中。 當你須要在雲中得到額外的容量時,能夠添加或啓用更多終結點,並指定哪部分流量將流向每一個終結點。
必須知道,客戶端及其用來解析 DNS 名稱的遞歸 DNS 服務器會緩存 DNS 響應。 這種緩存可能會影響到加權流量分佈。 若是客戶端和遞歸DNS 服務器的數目較大,流量分佈將按預期工做。 可是,若是客戶端或遞歸DNS 服務器的數目較小,緩存可能會嚴重影響流量分佈。
3.性能(Performance):
在國家或區域的兩個或更多位置部署終結點,將流量路由到「最靠近」你的位置,便可改善許多應用程序的響應能力。 「性能」流量路由方法提供這種能力。
「最靠近」的終結點不必定是地理距離最近的終結點。 「性能」流量路由方法經過測試網絡延遲來肯定最靠近的終結點。 流量管理器維護一份Internet 延遲表,用於跟蹤 IP 地址範圍與每一個 Azure 數據中心之間的往返時間。
流量管理器在 Internet 延遲表中查找傳入 DNS 請求的源 IP 地址。 而後,流量管理器在處理該IP 地址範圍的請求時具備最低延遲的Azure 數據中心內選擇一個可用終結點,並在DNS 響應中返回該終結點。
流量管理器按期更新 Internet 延遲表,反映全國 Internet 的變化以及新的 Azure 區域。 可是,因爲Internet 上的負載會實時變化,應用程序性能也會隨之變化。 「性能」流量路由不會監視給定服務終結點上的負載。 可是,若是某個終結點變得不可用,則流量管理器不會在DNS 查詢響應中包括該終結點。
4.地理(Geographic ):
流量管理器配置文件能夠配置爲使用「地理」路由方法,以便根據用戶的DNS 查詢所源自的地理位置將用戶定向到特定終結點(「Azure」、「外部」或「嵌套」)。 這使流量管理器客戶能夠啓用這樣的方案:在這些方案中,瞭解用戶的地理區域,並基於該地理區域路由用戶很重要。 示例包括遵照數據全部權要求、內容本地化和用戶體驗,以及測量來自不一樣區域的流量。 爲地理路由分配配置文件時,與該配置文件關聯的每一個終結點都需要有一組分配給它的地理區域。 地理區域的粒度能夠是如下級別:
世界 - 任何區域
區域分組 - 例如,非洲、中東、澳大利亞/太平洋等。
國家/地區 - 例如,愛爾蘭、祕魯、中國香港特別行政區等。
省/自治區/直轄市 - 例如,美國加利福尼亞州、澳大利亞昆士蘭州、加拿大阿爾伯達省等(注意:只有澳大利亞、加拿大和美國中的省/自治區/直轄市才支持此粒度級別)。
將一個或一組區域分配到某個終結點後,來自這些區域的任何請求僅路由到該終結點。 流量管理器使用DNS 查詢的源 IP 地址來肯定用戶從中進行查詢的區域- 一般,這將是表明用戶執行查詢的本地DNS 解析程序的 IP 地址。
5.多值(Multivalue):
流量路由方法容許你在單個 DNS 查詢響應中得到多個正常運行的終結點。 這使得調用方在返回的某個終結點沒法響應時可以經過其餘終結點進行客戶端重試。 此模式能夠提升服務可用性,並下降與新DNS 查詢獲取正常運行的終結點相關的延遲。 只有當全部終結點的類型都是「外部」而且指定爲IPv4 或 IPv6 地址時,多值路由方法纔有效。 當收到對此配置文件的查詢時,會根據可配置的最大返回計數返回全部正常運行的終結點。
6.子網(Subnet):
流量路由方法容許你將一個最終用戶IP 地址範圍集映射到配置文件中的特定終結點。 此後,若是流量管理器收到針對該配置文件的DNS 查詢,則它將檢查該請求的源 IP 地址(大多數狀況下,這是調用方使用的DNS 解析程序的傳出 IP 地址),肯定它映射到哪一個終結點,並在查詢響應中返回該終結點。
案例實戰:將流量路由到離用戶最近的站點
案例實戰視頻:https://v.qq.com/x/page/d3040zf64y8.html
實戰步驟:
在中國北部和中國東部2分別建立一臺虛擬機,命名爲seanyuvm01和seanyuvm02;
設置兩臺虛擬機IP的DNS分別爲:seanyuvm01.chinanorth.cloudapp.chinacloudapi.cn 和 seanyuvm02.chinaeast2.cloudapp.chinacloudapi.cn
虛擬機需開啓3389端口,安裝IIS,部署靜態網站,開啓防火牆80端口,此時能夠經過IP訪問靜態網站;
網站下載地址:
https://github.com/Azure-Samples/html-docs-hello-world
示例網站:
建立「性能」 流量管理器(http://seanyutest.trafficmanager.cn ),將兩臺虛擬機的IP添加到流量管理器終結點;
在域名5gn.link 設置域名解析,添加 web.5gn.link CNAME 記錄爲流量管理器的 域名;
通過訪問 流量管理器 seanyutest.trafficmanager.cn 和 域名 web.5gn.link 兩個域名測試訪問,分別從兩臺虛擬機(北部/ 東部2)訪問,觀察實際訪問的網站位置。
關閉VM02的IIS後,會自動導流到VM01
擴展:下圖是基於流量管理器的可負載均衡至全球的結構,請自行設置並驗證。