如何實現(xiàn)負載均衡
彈性負載均衡是如何工作的
彈性負載均衡的工作原理如下:
1、客戶端向您的應用程序發(fā)出請求。
2、負載均衡器中的監(jiān)聽器接收與您配置的協(xié)議和端口匹配的請求。
3、監(jiān)聽器再根據(jù)您的配置將請求轉(zhuǎn)發(fā)至相應的后端服務器組。如果配置了轉(zhuǎn)發(fā)策略,監(jiān)聽器會根據(jù)您配置的轉(zhuǎn)發(fā)策略評估傳入的請求,如果匹配,請求將被轉(zhuǎn)發(fā)至相應的后端服務器組。
4、后端服務器組中健康檢查正常的后端服務器將根據(jù)分配策略和您在監(jiān)聽器中配置的轉(zhuǎn)發(fā)策略的路由規(guī)則接收流量,處理流量并返回客戶端。
請求的流量分發(fā)與負載均衡器所綁定的監(jiān)聽器配置的轉(zhuǎn)發(fā)策略和后端服務器組配置的分配策略類型相關(guān)。
分配策略類型
獨享型負載均衡支持加權(quán)輪詢算法、加權(quán)最少連接、源IP算法、連接ID算法,共享型負載均衡支持加權(quán)輪詢算法、加權(quán)最少連接、源IP算法。
加權(quán)輪詢算法:根據(jù)后端服務器的權(quán)重,按順序依次將請求分發(fā)給不同的服務器。它用相應的權(quán)重表示服務器的處理性能,按照權(quán)重的高低以及輪詢方式將請求分配給各服務器,權(quán)重大的后端服務器被分配的概率高。相同權(quán)重的服務器處理相同數(shù)目的連接數(shù)。常用于短連接服務,例如HTTP等服務。
彈性負載均衡器使用加權(quán)輪詢算法的流量分發(fā)流程。假設(shè)可用區(qū)內(nèi)有2臺權(quán)重相同的后端服務器,負載均衡器節(jié)點會將50%的客戶端流量分發(fā)到其可用區(qū)中的每一臺后端服務器。
加權(quán)最少連接:最少連接是通過當前活躍的連接數(shù)來估計服務器負載情況的一種動態(tài)調(diào)度算法。加權(quán)最少連接就是在最少連接數(shù)的基礎(chǔ)上,根據(jù)服務器的不同處理能力,給每個服務器分配不同的權(quán)重,使其能夠接受相應權(quán)值數(shù)的服務請求。常用于長連接服務,例如數(shù)據(jù)庫連接等服務。
彈性負載均衡器使用加權(quán)最少連接算法的流量分發(fā)流程。假設(shè)可用區(qū)內(nèi)有2臺權(quán)重相同的后端服務器,ECS 01已有100個連接,ECS 02已有50個連接,則新的連接會優(yōu)先分配到ECS 02上。
源IP算法:將請求的源IP地址進行一致性Hash運算,得到一個具體的數(shù)值,同時對后端服務器進行編號,按照運算結(jié)果將請求分發(fā)到對應編號的服務器上。這可以使得對不同源IP的訪問進行負載分發(fā),同時使得同一個客戶端IP的請求始終被派發(fā)至某特定的服務器。該方式適合負載均衡無cookie功能的TCP協(xié)議。
彈性負載均衡器使用源IP算法的流量分發(fā)流程。假設(shè)可用區(qū)內(nèi)有2臺權(quán)重相同的后端服務器,ECS 01已經(jīng)處理了一個IP-A的請求,則IP-A新發(fā)起的請求會自動分配到ECS 01上。
連接ID算法:利用報文里的連接ID字段進行一致性hash算法,得到一個具體的數(shù)值,同時對后端服務器進行編號,按照運算結(jié)果將請求分發(fā)到對應編號的服務器上。這可以使得對不同連接ID的訪問進行負載分發(fā),同時使得同一個連接ID的請求始終被派發(fā)至某特定的服務器。該方式適合于負載均衡QUIC協(xié)議應用的報文流。
說明:當前僅獨享型負載均衡支持連接ID算法。
彈性負載均衡器使用連接ID算法的流量分發(fā)流程。假設(shè)可用區(qū)內(nèi)有2臺權(quán)重相同的后端服務器,ECS 01已經(jīng)處理了一個客戶端A的請求,則客戶端A的新發(fā)起的請求會自動分配到ECS 01上。
影響負載均衡的因素
一般情況下,影響負載均衡分配的因素包括分配策略、會話保持、長連接、權(quán)重等。換言之,最終是否均勻分配不僅與分配策略相關(guān),還與使用的長短連接、后端的性能負載等相關(guān)。
假設(shè)可用區(qū)內(nèi)有2臺權(quán)重相同且不為0的后端服務器,流量分配策略選擇“加權(quán)最少連接”,未開啟會話保持,ECS 01已有100個連接,ECS 02已有50個連接。
如果有客戶端A使用長連接訪問了ECS 01,長連接未斷開期間,客戶端A的業(yè)務流量將持續(xù)轉(zhuǎn)發(fā)到ECS 01,其他客戶端的業(yè)務流量則根據(jù)分配策略優(yōu)先分配到ECS 02。
說明:后端服務器健康檢查異?;驒?quán)重設(shè)置為0時,ELB不會轉(zhuǎn)發(fā)業(yè)務流量到該后端服務器。
配置流量分配策略請參考流量分配策略。
檢查請求不均衡請參考如何檢查請求不均衡?。
彈性負載均衡應用場景
-
使用ELB為高訪問量業(yè)務進行流量分發(fā)
對于業(yè)務量訪問較大的業(yè)務,可以通過ELB設(shè)置相應的分配策略,將訪問量均勻的分到多個后端服務器處理。例如大型門戶網(wǎng)站,移動應用市場等。
同時您還可以開啟會話保持功能,保證同一個客戶請求轉(zhuǎn)發(fā)到同一個后端服務器。從而提升訪問效率。
-
使用ELB和AS為潮汐業(yè)務彈性分發(fā)流量
對于存在潮汐效應的業(yè)務,結(jié)合彈性伸縮服務,隨著業(yè)務量的增長和收縮,彈性伸縮服務自動增加或者減少的ECS實例,可以自動添加到ELB的后端云服務器組或者從ELB的后端云服務器組移除。負載均衡實例會根據(jù)流量分發(fā)、健康檢查等策略靈活使用ECS實例資源,在資源彈性的基礎(chǔ)上大大提高資源可用性。
-
使用ELB消除單點故障
對可靠性有較高要求的業(yè)務,可以在負載均衡器上添加多個后端云服務器。負載均衡器會通過健康檢查及時發(fā)現(xiàn)并屏蔽有故障的云服務器,并將流量轉(zhuǎn)發(fā)到其他正常運行的后端云服務器,確保業(yè)務不中斷。
例如官網(wǎng),計費業(yè)務,Web業(yè)務等。
-
使用ELB跨可用區(qū)特性實現(xiàn)業(yè)務容災部署
對可靠性和容災有很高要求的業(yè)務,彈性負載均衡可將流量跨可用區(qū)進行分發(fā),建立實時的業(yè)務容災部署。即使出現(xiàn)某個可用區(qū)網(wǎng)絡故障,負載均衡器仍可將流量轉(zhuǎn)發(fā)到其他可用區(qū)的后端云服務器進行處理。
例如銀行業(yè)務,警務業(yè)務,大型應用系統(tǒng)等。
彈性負載均衡幫助視頻
創(chuàng)建彈性負載均衡實例
04:32
配置彈性負載均衡訪問日志
02:44
如何排查健康檢查異常
06:24