azure git怎么使用_Azure(一)Azure Traffic Manager為我們的Web項目提供負載均衡

一,引言

  上一篇講到我們將自己的Net Core Web 項目部署到 Azure 的 Web App 的一項 pass 服務,假如隨著項目的日益增長的訪問量,之前部署到單節點的應用可能無法保證其穩定性,可能會導致系統宕機等等問題,這個時候,我們就要考慮到項目的架構問題,怎么保證項目的穩定性,比如:

  1,縱向擴展,增加 Web App的定價層

Azure Portal 中找到我們之前創建好的叫 “CnBateBlogWeb” 的 Web App,選擇 “App Service plan” => "Change App Service plan",點擊 “Standard(S1)”的超鏈接。

56264a283155d5931a86f6344b3c3083.png

我們可以看到,當前我們創建的Web App 的定價層是 S1,為100個計算單元,1.75G的內存,如果日后項目隨著業務訪問量的上漲無法滿足后,我們可以進行選擇升級,選擇一個合適的定價層。同時,我們也可以點擊 ” See additional options “ 查看更多選項,比如 "Standard(P3V2)“

76dd50faf9391d4d8fe1f43592eecd32.png

  2,橫向擴展:我們可以增加 Azure Web App 實例數,Azure 已經為我們提供了 縮放/擴展的功能, 我們可以選擇 ”手動“/ ”自動“去縮放我們的資源

14589c98e25dfbb38a710d3cdabcedfd.png

但是今天,我采用第三種方式,假設我們的架構是這個樣子的。

b58a3f272c39a0a79ab9b8c5bbcc3d55.png

ok,第一種方案,我就不再進行演示了,因為之前在使用部署槽的時候,我也是把應用程序計劃由一個 ”Free“ 改變成 ”S1“,今天著重講一下第二種方式,開始內容之前,我們先了解一下Azure 提供的另外一個服務 ”Traffic Manager“。

-----------------------------題外話-----------------------------

這時,有可能會有人出來抬杠了,說硬件方面可以通過F5,軟件方面,我們也可以通過 Nginx 來實現,為什么還有額外使用什么 ”Azure Traffic Manager profile“。用這個還得收費。是沒錯,F5和 Nginx 都可以實現,但這不是重點,重點是去熟悉,了解Azure的這些服務。

--------------------我是分割線--------------------

Azure Web App 部署系列:

1,Azure Web App(一)發布你的Net Core Web 項目

2,Azure Web App(二)使用部署槽切換部署環境代碼

3,Azure Web App(三)切換你的Net Core Web 項目的數據庫連接字符串

4,Azure 提供負載均衡(一)Azure Traffic Manager 為我們的Web項目提供負載均衡

二,正文

1,什么是 "Traffic Manager profile"(流量配置管理器)

Traffic Manager profile 是 Azure 提供的 DNS 解析服務,可以在全球 Azure 區域內以最佳方式向服務分發流量,同時提供高可用性和響應性。流量管理器提供了以下功能:

  (1)提高應用程序可用性

  (2)改善應用程序性能

  (3)在不停機的情況下執行服務維護

 。。。。。。。

Traffic Manager 將監視任何 http 或 https 端口上的每個托管服務集合。如果 Traffic Manager profile 檢測到服務處于脫機狀態,則會將流量發送到下一個最佳可用服務。通過使用此新功能,我們可以看到應用程序的可靠性、可用性和性能得到了提高。

2,創建 Traffic Manager profile

創建Traffic Manager profile 之前,我們還需要再創建一個Web App,配置信息和前面將到的Azure Web App 演示的Demo的基本配置一樣,只是新建一個資源組為 "Web_Test_01_RG",Web App 的Name改為 “CnBateBlogWeb01”,Region 選擇 ”Southeast Asia“,點擊 “Review+create” 進行預校驗,校驗完成后,點擊“Create”

237c48394c5885f2226a4801c063ab32.png

Azure Portal 中 點擊 ”Create a resource“,搜索框中輸入 “Traffic Manager profile”,回車

d766a1a00fc6e024d113a2d41b6f829b.png

點擊 “Create”

2618a42887303d76623517dc7297aabf.png

我們可以看到 Traffic Manager 配置文件頁面,

Name:為流量管理器配置文件輸入唯一的名稱,

Routing method:路由策略方式

Rreource group:資源組

Resource group location:資源組的位置,這個位置我習慣根據實際項目部署的位置選擇,其實它對Traffic Manager 配置文件沒有任何影響

2ae4f76e98edf1fd80717cff0be948eb.png

我i們來細看一下 Routing method 這個參數

978697d33d5342276ae6f51076cc1814.png

Traffic Manger 給我們提供了四種路由策略:

  (1)Performance(基于性能的路由策略):這種策略是根據當前不同服務器的性能根據可能最小延時來響應用戶的請求

  (2)Weighted(基于權重的路由策略):可以對多個服務器設置不同的權重,這樣Traffic Manger會根據不同的權重分配不同的流量,權重較高的,那么分配到的請求也就多一些。

  (3)Priority(優先級的路由策略):根據設置的多個服務器節點,比方說有一些服務器因為某些原因宕機,Traffic Manger 會自動從正常的服務響應用戶的請求

  (4)Geographic(基于地理位置的路由策略):這種最好理解,簡單說就是在不同的地理位置上部署服務器以就近響應用戶的請求,

  (5)MultiValue(基于多值的路由策略):多值路由僅針對使用 IPv4 或 IPv6 地址指定了所有端點的配置文件啟用,根據指定的可配置的最大返回計數返回所有運行正常的終結點。

  (6)Subnet(基于子網的路由策略): 借助子網流量路由方法,可以將一組 IP 地址范圍映射到特定終結點,當流量管理器接收到請求后,它會檢查請求的源 IP 并返回相關的終結點 。

我們接下來都會試試,

Name :”tm.cnbateblogweb“;Routing method 選擇:”Performance“,Resource group:選擇之前創建好的的 “Web_Test_TM_RG”,Resource group location 的位置是之前資源組默認的 “East Asia”。添加完成后,我們點擊 “Create”。

08ae4b3faae0853a26edf4d95ae270a4.png

稍等片刻之后,我們可以再Azure Portal的通知欄中找到 剛剛創建好的 “Traffic Manager profile” ,我們點擊 “Go to resource”

3, 部署項目到新的Azure Web App

我們稍微修改一下代碼(主要是為了區別流量到底是轉發到那個Web App的服務上的),Welcome后面添加上 cnBateBlogWeb01 的標識。

e770b160285ff13b1a115b8fccef2d4f.png

重新生成項目,選擇項目發布

點擊 ”新建“,選擇 ”應用服務“,Azure 應用服務 ”選擇現有“,點擊 ”創建配置文件“

選擇上面剛剛創建好的叫 ”CnBateBlogWeb01“ 的 Web App,點擊 ”確定“

21d07a2ed362d88153a13ed0c7cd836a.png

稍等片刻,等待VS的輸出控制臺顯示 發布成功

51d90bf38fa2e491765091e6d3790eb8.png

這時候,瀏覽器會自動跳出來當前項目默認的一個二級域名,這個是時候當前頁面是會報錯了 500,這個不用擔心,是因為我們沒有去配置環境變量。

2bd5fab8e01de80cad26ed85afbe84ba.png

我們轉到Azure Portal的 CnBateBlogWeb01的 Web App , 點擊 ”Setting“ => "Configuration",今天添加配置

859b0328b1929cacb34f51ee2a41e4f6.png

Name:ASPNETCORE_ENVIRONMENT

Value:Production

點擊 ”OK“

68d1254df2cee3a69765e5fcd7c1d5af.png

可以看到,我們成功的配置好環境變量

8ee476d2960ad360b7b58f98bd7d7a1d.png

回到瀏覽器中,我們再次刷新頁面看看,頁面這次顯示沒有任何問題,我們在Welcome 后面打的標記 ”CnBateBlogWeb01“也在

4e29974b2b50dddee1f86b55550fef69.png

4,添加 “Traffic Manager”的 enPoint

選擇 “Setting” =》"Endpoints",點擊 “Add” 添加終結點。

cabeae3132bd6c154a2a88cd4c7c7cf3.png
d669715733c74a6522588552f3b51212.png

類型選擇默認的 “Azure endpoint”,Name輸入:"cbbateblogweb_webapp_performance",Target resouce type(目標資源類型) 選擇 ”App Service“,Target resource 選擇 "CnBateBlogWeb" 的Web App,點擊 ”Add“。

e969f011b95ca05bdab3701d779036e1.png

我們可以看到剛剛添加好的節點信息,Ststus 也是開啟的

ff008b2f8d82c2f2a07b8396a83ec237.png

重復步驟4,將剛剛創建好的叫 ”CnbateBlogWeb01“ 的 Web App 也加入到 Traffic Manager profile 的終結點中,下圖圈起來的是添加好的第二個終結點信息

3d602e1adce5567f516847ec09e8d8e5.png

5,測試流量轉發

點擊 ”overview“,復制 DNS name 到瀏覽器

d33474d14af872b78b79b66c8a69c1df.png

我們,可以看到 流量被轉發到 CnBateBlogWeb 這個Web App 上了

67ba6f35f4cd7d004e43b48484fb1985.png

為了能剛好的測試,我們之前選擇的 "Routing method" 為 "Performance"(基于性能的路由策略),我這邊采用了谷歌瀏覽器的一個叫 "lighthouse"的一個網頁性能測試的一個工具,下圖我是直接訪問兩個web app默認的域名進行訪問測試結果的對比圖

9d960df469a9ea81a8869c25e4f35f22.png

這個是谷歌瀏覽器的調試工具,我們也可以清楚的看到左邊的 CnBateBlogWeb 的 Web App 比右邊的 CnBateBlogWeb01 的 Web App 總耗時短

5ef86c13733c6e92cfb8309d528c61ca.png

不好意思,由于我自己的才疏學淺,不知道怎么才能把啟用一個Web App 服務的網絡延遲手動干擾增大。

6,通過設置 Routing method為 ”Geographic“來轉發流量

接下來,我們創建一個新的 Traffic Manager profile ,設置的路由方式為 ”Geographic“,根據地理位置分配流量

Name:“tm01.cnbateblogweb”

Routing method:”Geographic“

點擊 ”Create“

f10b974fe745706bc751b1ff54cb6aab.png

添加終結點的時候,有個特殊點需要注意一下,就是需要設置 ”Geo-mapping“,這意思是,比如,我們這里配置的異地映射有 ”亞洲-中國“,”亞洲-韓國“,當用戶的請求是從這些地方請求過來的,Traffic Manager 會將這些請求轉發到 "CnBateBlogWeb(East Asia)" 這個目標資源。

Name:“tm01_cnbateblogweb_webapp_performance”

Target resource type:”App Service“

Target resource:”CnBateBlogWeb“

點擊 ”Add“

重復上面的步驟,我們進行添加另外一個終結點信息,異地映射選擇 ”澳洲-澳大利亞“,”亞洲-新加坡“

Name:“tm01_cnbateblogweb01_webapp_performance”

Target resource type:”App Service“

Target resource:”CnBateBlogWeb“

點擊 ”Add“

f6e168e1453ffa171172a27c3ca5b86d.png

我們復制當前 Traffic Manager profile 的 DNS name ,瀏覽器中輸入地址,顯示如下,確實跟我們配置的信息一直,當前用戶的請求來自 中國的時候,會將流量轉發到 CnBateblogWeb 這個Web App。

81c58daa3c69f3adf92c84c68b5ec8c4.png

轉到瀏覽器,我們看看結果

51219b82ad04e469ca161aa4e4aa72b4.png
51219b82ad04e469ca161aa4e4aa72b4.png

我們使用一種不可描述的方式,切換一下試試,當用戶的請求來自 韓國,當前 Traffic Manager 也會將流量轉發到 CnBateBlogWeb 這個 Web App.

9b96cba64d89abdf4f2151642071e83f.png

我們再次切換不可描述的方式,我們可以看到,如果用戶的請求來自 新加坡,Traffic Manager 會將流量轉發到 ”CnBateBlogWeb01“ 這個 Web App 上。

0879c64fe2579238a5a5a311de2bff04.png

我們再次切換不可描述的方式,我們可以看到,如果用戶的請求來自 澳大利亞,Traffic Manager 會將流量轉發到 ”CnBateBlogWeb01“ 這個 Web App 上。

ffc52925cd4cc2dcbdabacc7c43e8cec.png

ok,今天的分享到此結束。撒花,撒花!!!

三,總結

今天將的內容也有些多,演示了兩種Traffic Manager 的路由策略,也同時復習了一下如何創建 Web App,以及使用 VS 發布項目到 Azure Web App。

下一篇,我們繼續介紹 Traffic Manager 剩下的4種路由策略,期待中........

作者:Allen

項目代碼:https://github.com/yunqian44/CnBateBlogWeb.git

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/373549.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/373549.shtml
英文地址,請注明出處:http://en.pswp.cn/news/373549.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

hiho1257 Snake Carpet

題目鏈接:http://hihocoder.com/problemset/problem/1257 題目大意:有n條蛇 編號為1-n 每條蛇的長度跟編號相等 奇數編號的蛇必須拐奇數次(除了第一條)偶數編號的蛇必須拐偶數次(除了第二條)問能不能在這種…

POJ 3680_Intervals

題意: 給定區間和該區間對應的權值,挑選一些區間,求使得每個數都不被K個區間覆蓋的最大權值和。 分析: 如果K1,即為區間圖的最大權獨立集問題。可以對區間所有端點排序后利用動態規劃的方法,設dp[i]為只考慮…

MongoDB 數據類型查詢——$type使用

在MongoDB中根據字段的數量類型來查詢數據使用$type操作符來實現,具體使用法語:1db.集合名.find({$type:類型值}) //這里的類型值能使用Number也能使用alias舉個例子:12db.person.find({address:{$type:2}}) //查詢address字段數據…

Spring和JSF集成:MVC螺母和螺栓

過去,我曾嘗試將JSF與Spring MVC集成在一起,盡管我的第一次嘗試成功了,但這遠非理想。 這次,我決定做出一些關鍵決定來幫助我集中精力: 向后兼容。 支持JSF 1.2涉及的工作太多,而Spring 3.1中出現了太多的好…

文字描邊_如何在網頁里實現文字描邊效果

文字描邊想要在網頁里實現文本描邊效果,在以前只能使用Photoshop等來實現,但現在只需要一個text-stroke屬性,即可輕松做到文本描邊,漸變文本描邊,甚至圖片文本描邊。01語法text-stroke: text-stroke是一個復合屬性&…

javascript數據結構-棧

github博客地址 棧(stack)又名堆棧,它是一種運算受限的線性表。遵循后進先出原則,像垃圾桶似的。功能實現依然按照增刪改查來進行,內部數據存儲可以借用語言原生支持的數組。 棧類 function Stack(){this.data []; }添…

MongoDB 字符串值長度條件查詢

在實際項目中常常會有根據字段值長度大小進行限制查詢,例如查詢商品名稱過長或過短的商品信息,具體的實現方式可能有多種,在此記錄常見的兩種實現使用 $where 查詢(性能稍遜一些)12345//查詢商品名稱長度大于25個字符的…

虛擬化Java應用程序:最佳實踐(JavaOne 2011)

賈斯汀穆雷(Justin Murray)早五分鐘就開始了他的演講[“虛擬化Java應用程序:最佳實踐”(21860)],并說虛擬化已經到了人們不再需要擔心利用虛擬化的地步。 他說他的演講大約有一年的歷史,是一個團…

linux里hba狀態_Windows和Linux系統查看HBA卡wwn號的方法 | 系統之家官網

一、windows 系統在windows系統中,可以使用fc hba卡廠家提供的管理軟件查看光纖適配器的wwn號碼,具體如下:qlogic:sansurferemulex:hbanyware二、suse linux 9查看 /proc/scsi/qla2xxx/* ,并以 adapter-por…

”二柱子“個人項目

”二柱子“個人項目 關于二柱子的個人項目,據說……是這么發生的…… 二柱子因為懶(,,? ? ?,,),要給他上小學的兒子編寫個能夠出小學四則運算題目的程序。老師上課的時候又添加了條件: 1、打印至少30道題 2、除了整數之外,還要…

phpstorm9 增加對.vue的支持

1、安裝vue.js插件 2、設置javascript version為ECMAScript 6 3、 <script type"text/ecmascript-6"> </script>轉載于:https://www.cnblogs.com/lobtao/articles/6044378.html

Eclipse中的集成Git插件刪除線上遠程分支

Eclipse 的忠實黨,在使用Git 多人協作以分支的形式開發應用時分支合并到主干后往往再沒什么用(我的做法是保留一兩周再干掉),在此記錄使用Eclipse的Git 插件來刪除無用的分支。 操作步驟: 項目右鍵 — Team — Remote — Push — Next — Finesh 1,下拉框選擇你要刪除的遠程分支…

mysql 查詢系統_使用select和show命令查看mysql數據庫系統信息

(1).select顯示當前日期和時間mysql> select now();---------------------| now() |---------------------| 2019-06-05 13:46:20 |---------------------1 row in set (0.00 sec)顯示當前日期mysql> select curdate();------------| curdate() |------------| 2019-06-0…

從MongoDB GridFS流式傳輸文件

不久前&#xff0c;我在Twitter上發布了自己的最新作品&#xff0c;即從MongoDB GridFS傳輸文件進行下載&#xff08;而不是將整個文件存儲到內存中然后提供服務&#xff09;&#xff0c;這是我取得的一個小勝利。 我答應就此事寫博客&#xff0c;但不幸的是&#xff0c;我的特…

0. 洗好蝦和鍋 1. 放水放老姜&#xff0c;燒開&#xff0c;放鹽 2. 放入蝦&#xff0c;沸騰后&#xff0c;嘗咸淡 3. 放香蔥&#xff0c;乘起來轉載于:https://www.cnblogs.com/gary-tao/p/5248139.html

讀字庫遇到坑爹的問題

轉載請注明出處&#xff1a;http://blog.csdn.net/qq_26093511/article/details/53099262 最近在做一個led顯示屏的項目&#xff0c; 我想顯示 “常”&#xff0c;“州”&#xff0c;“大”&#xff0c;“學”這幾個字&#xff0c;但是只能顯示 “常” 和 “大”&#xff0c;…

如果–否則為編碼風格最佳實踐

下面的帖子將是一個高級花括號討論&#xff0c;沒有對與錯的答案&#xff0c;只是更多的“品味”。 它是關于是否將“ else”&#xff08;以及其他關鍵字&#xff0c;例如“ catch”&#xff0c;“ finally”&#xff09;放在換行符上。 有些人可能會寫 if (something) {doIt(…

MongoDB 去重(distinct)查詢后求總數(count)

在使用MonoDB 做報表匯總經常的有去重統計總數的需求,在此總結一下實現方式: 1, 直接使用distinct 語句查詢, 這種查詢會將所有查詢出來的數據返回給用戶, 然后對查詢出來的結果集求總數(耗內存,耗時一些) var len db.student.distinct("name",{"age" :…

adobe premiere pro cc2015.0已停止工作 解決辦法

adobe premiere pro cc2015.0已停止工作 一直報錯 解決辦法就是&#xff1a; 刪除【我的電腦】- 【我的文檔】下的 Adobe 下的Premiere Pro文件夾 現象就是怎么重新安裝都不管用Premiere 參考路徑 &#xff1a;C:\Users\xxx\Documents\Adobe\Premiere Pro 轉載于:https://…

java mysql 語句解析器_幾種基于Java的SQL解析工具的比較與調用

1、sqlparserhttp://www.sqlparser.com/優點&#xff1a;支持的數據庫最多&#xff0c;除了傳統數據庫外還支持hive和greenplum一類比較新的數據庫&#xff0c;調用比較方便&#xff0c;功能不錯缺點&#xff1a;收費&#xff0c;500$起2、Apache Calcite一個構建JDBC或者ODBC訪…