您好,登錄后才能下訂單哦!
在以往我們創(chuàng)建高可用Web應(yīng)用程序時,負(fù)載均衡器是必不可少的組件。我們都使用傳統(tǒng)內(nèi)部服務(wù)器的負(fù)載均衡器,其中我們的應(yīng)用程序在N個實例上運行,負(fù)載均衡器位于這些服務(wù)器的前面,并根據(jù)某些預(yù)定義的算法和設(shè)置向后端服務(wù)器分配負(fù)載。
遷移到云中,我們需要了解如何使用Azure組件實現(xiàn)相同的負(fù)載平衡。云應(yīng)用程序中的負(fù)載平衡需要更多的考慮,即在一些服務(wù)器前面有一個簡單的負(fù)載平衡器,就像我們可以在PaaS上托管服務(wù)一樣,我們可以為不同的租戶在不同的實例上運行服務(wù),也可以讓應(yīng)用程序在分布在世界各地的多個服務(wù)器上運行。
出于這個原因,Azure中有多個可用于負(fù)載平衡的組件。這些組件中的每一個都有不同的目的,我們需要為方案選擇正確的組件才能實現(xiàn)最佳的應(yīng)用程序架構(gòu)。
Azure負(fù)載平衡解決方案
Azure中主要有3個負(fù)載平衡組件。
l Azure負(fù)載均衡器
l Azure應(yīng)用程序網(wǎng)關(guān)
l Azure流量管理器
讓我們逐一了解每個組件,并嘗試了解何時有效地使用每個組件。
Azure負(fù)載均衡器
Azure負(fù)載均衡器是一種比較經(jīng)典的負(fù)載均衡器,因為它可以用于平衡VM的負(fù)載,就像我們使用傳統(tǒng)負(fù)載均衡器與我們的內(nèi)部部署服務(wù)器一樣?,F(xiàn)在,由于Azure負(fù)載均衡器是專為云應(yīng)用程序而設(shè)計,因此它還可用于平衡負(fù)載與容器和PaaS應(yīng)用程序以及VM。
但是這種與傳統(tǒng)負(fù)載均衡器的相似之處在于,Azure負(fù)載均衡器的工作原理是傳輸層(OSI模型的第4層)。這意味著它將在同一個Azure數(shù)據(jù)中心分發(fā)網(wǎng)絡(luò)流量,但不能使用會話和應(yīng)用層提供的傳統(tǒng)負(fù)載平衡器的特性,因為這些是OSI模型的第7層構(gòu)造。
負(fù)載均衡器配置有負(fù)載平衡規(guī)則,這些規(guī)則在端口級別工作。它接受源端口和目標(biāo)端口將它們映射在一起,這樣每當(dāng)它接收到對源端口的請求時,該請求就會從連接到目標(biāo)端口上的負(fù)載均衡器的一組虛擬機(jī)(或VNET中的應(yīng)用程序)轉(zhuǎn)發(fā)到虛擬機(jī)。
Azure負(fù)載均衡器可用于兩種配置模式:
l 外部 - 公共負(fù)載平衡
l 內(nèi)部 - 內(nèi)部負(fù)載平衡
外部 - 公共負(fù)載平衡
在此模式下,為負(fù)載均衡器分配一個公共IP地址,以確保負(fù)載均衡器可以接受來自Internet的請求??蛻舳藨?yīng)用程序和服務(wù)將從Internet調(diào)用負(fù)載均衡器,然后根據(jù)配置的規(guī)則,它將通過VM,容器或應(yīng)用程序分發(fā)傳入流量。
內(nèi)部 - 內(nèi)部負(fù)載平衡
內(nèi)部負(fù)載均衡器與外部負(fù)載均衡器基本相同,但它使用專用IP地址,因此只能從與其連接的虛擬網(wǎng)絡(luò)中的應(yīng)用程序進(jìn)行調(diào)用。
Azure負(fù)載均衡器幫助我們在基礎(chǔ)架構(gòu)級別設(shè)計高可用性,但是由于有些情況需要我們的負(fù)載平衡組件提供更高級的功能和服務(wù),如連接關(guān)聯(lián)性,安全性,SSL終止等,我們無法使用Azure負(fù)載均衡器來實現(xiàn)這些高級功能我們需要一個可以處理OSI模型的第7層結(jié)構(gòu)的解決方案,即應(yīng)用程序,會話等。讓我們看看我們?nèi)绾卧谙乱还?jié)中實現(xiàn)這一點。
Azure應(yīng)用程序網(wǎng)關(guān)
Azure應(yīng)用程序網(wǎng)關(guān)是一個7層負(fù)載均衡器,因此它可以對訪問應(yīng)用程序的會話進(jìn)行有效負(fù)載,使應(yīng)用程序網(wǎng)關(guān)除了提供負(fù)載均衡功能外還能提供更多的功能。如粘性會話、連接親和力等。由于與Azure負(fù)載均衡器相比,應(yīng)用程序網(wǎng)關(guān)具有更多的功能,因此可以配置更復(fù)雜的路由和負(fù)載平衡。應(yīng)用程序網(wǎng)關(guān)充當(dāng)反向代理服務(wù)。它終止客戶端連接,并將請求轉(zhuǎn)發(fā)到后端端點。。
我個人認(rèn)為,如果我們在應(yīng)該使用公共負(fù)載平衡器的應(yīng)用程序級別上運行工作負(fù)載,那么在更多的用例中,應(yīng)用程序網(wǎng)關(guān)的使用比使用負(fù)載平衡器更有意義。
應(yīng)用程序網(wǎng)關(guān)可以被認(rèn)為是在第7層上運行的,并提供了比負(fù)載均衡器更多的功能。應(yīng)用程序網(wǎng)關(guān)還可用于基于URL路由流量,這對于開發(fā)多租戶應(yīng)用程序非常有用,其中每個租戶都有獨立的VM運行實例和URL中的租戶標(biāo)識符。
Azure流量管理器
到目前為止,我們已經(jīng)看到了滿足數(shù)據(jù)中心內(nèi)負(fù)載平衡的負(fù)載平衡解決方案。負(fù)載平衡器和應(yīng)用程序網(wǎng)關(guān)是用于在數(shù)據(jù)中心內(nèi)實現(xiàn)高可用性的組件。但是通過云,我們還可以以地理上分布的方式構(gòu)建我們的應(yīng)用程序。那么我們?nèi)绾纹胶獾乩砦恢弥g的負(fù)載。
Azure流量管理器僅用于此目的。Azure流量管理器使用DNS將請求重定向到適當(dāng)?shù)牡乩砦恢枚它c。流量管理器不會看到客戶端和服務(wù)之間傳遞的流量。它只是根據(jù)最合適的端點重定向請求。地理位置端點是面向互聯(lián)網(wǎng)的可訪問公共URL。
Azure流量管理器在DNS級別工作,即它使用DNS級別配置的規(guī)則在多個區(qū)域和數(shù)據(jù)中心分配負(fù)載??蛻舳税l(fā)出DNS請求,并根據(jù)DNS的位置,Azure Traffic Manager將找到最近的區(qū)域,并通過DNS響應(yīng)將其發(fā)送回客戶端。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。