分布式架構(gòu)下的負載均衡簡單易懂

2021-02-01    分類: 網(wǎng)站建設(shè)

百度詞條里的解釋是:負載均衡,英文叫Load Balance,意思就是將請求或者數(shù)據(jù)分攤到多個操作單元上進行執(zhí)行,共同完成工作任務(wù)。

它的目的就通過調(diào)度集群,達到好化資源使用,大化吞吐率,最小化響應(yīng)時間,避免單點過載的問題。

負載均衡分類

負載均衡可以根據(jù)網(wǎng)絡(luò)協(xié)議的層數(shù)進行分類,我們這里以ISO模型為準,從下到上分為:

物理層,數(shù)據(jù)鏈路層,網(wǎng)絡(luò)層,傳輸層,會話層,表示層,應(yīng)用層。

當客戶端發(fā)起請求,會經(jīng)過層層的封裝,發(fā)給服務(wù)器,服務(wù)器收到請求后經(jīng)過層層的解析,獲取到對應(yīng)的內(nèi)容。

HTTP協(xié)議

二層負載均衡

二層負債均衡是基于數(shù)據(jù)鏈路層的負債均衡,即讓負債均衡服務(wù)器和業(yè)務(wù)服務(wù)器綁定同一個虛擬IP(即VIP),客戶端直接通過這個VIP進行請求,那么如何區(qū)分相同IP下的不同機器呢?沒錯,通過MAC物理地址,每臺機器的MAC物理地址都不一樣,當負載均衡服務(wù)器接收到請求之后,通過改寫HTTP報文中以太網(wǎng)首部的MAC地址,按照某種算法將請求轉(zhuǎn)發(fā)到目標機器上,實現(xiàn)負載均衡。

這種方式負載方式雖然控制粒度比較粗,但是優(yōu)點是負載均衡服務(wù)器的壓力會比較小,負載均衡服務(wù)器只負責(zé)請求的進入,不負責(zé)請求的響應(yīng)(響應(yīng)是有后端業(yè)務(wù)服務(wù)器直接響應(yīng)給客戶端),吞吐量會比較高。

兩層負載

三層負載均衡

三層負載均衡是基于網(wǎng)絡(luò)層的負載均衡,通俗的說就是按照不同機器不同IP地址進行轉(zhuǎn)發(fā)請求到不同的機器上。

這種方式雖然比二層負載多了一層,但從控制的顆粒度上看,并沒有比二層負載均衡更有優(yōu)勢,并且,由于請求的進出都要經(jīng)過負載均衡服務(wù)器,會對其造成比較大的壓力,性能也比二層負載均衡要差。

三層負載

四層負載均衡

四層負載均衡是基于傳輸層的負載均衡,傳輸層的代表協(xié)議就是TCP/UDP協(xié)議,除了包含IP之外,還有區(qū)分了端口號,通俗的說就是基于IP+端口號進行請求的轉(zhuǎn)發(fā)。相對于上面兩種,控制力度縮小到了端口,可以針對同一機器上的不用服務(wù)進行負載。

這一層以LVS為代表。

無圖

七層負載均衡

七層負載均衡是基于應(yīng)用層的負載均衡,應(yīng)用層的代表協(xié)議有HTTP,DNS等,可以根據(jù)請求的url進行轉(zhuǎn)發(fā)負載,比起四層負載,會更加的靈活,所控制到的粒度也是最細的,使得整個網(wǎng)絡(luò)更"智能化"。例如訪問一個網(wǎng)站的用戶流量,可以通過七層的方式,將對圖片類的請求轉(zhuǎn)發(fā)到特定的圖片服務(wù)器并可以使用緩存技術(shù);將對文字類的請求可以轉(zhuǎn)發(fā)到特定的文字服務(wù)器并可以使用壓縮技術(shù)。可以說功能是非常強大的負載。

獨自驕傲

這一層以Nginx為代表。

在普通的應(yīng)用架構(gòu)中,使用Nginx完全可以滿足需求,對于一些大型應(yīng)用,一般會采用DNS+LVS+Nginx的方式進行多層次負債均衡,以上這些說明都是基于軟件層面的負載均衡,在一些超大型的應(yīng)用中,還會在前面多加一層物理負載均衡,比如知名的F5。

負載均衡算法負載均衡算法分為兩類:

一種是靜態(tài)負載均衡,一種是動態(tài)負載均衡。

靜態(tài)均衡算法:

1、輪詢法

將請求按順序輪流地分配到每個節(jié)點上,不關(guān)心每個節(jié)點實際的連接數(shù)和當前的系統(tǒng)負載。

優(yōu)點:簡單高效,易于水平擴展,每個節(jié)點滿足字面意義上的均衡;

缺點:沒有考慮機器的性能問題,根據(jù)木桶最短木板理論,集群性能瓶頸更多的會受性能差的服務(wù)器影響。

輪詢

2、隨機法

將請求隨機分配到各個節(jié)點。由概率統(tǒng)計理論得知,隨著客戶端調(diào)用服務(wù)端的次數(shù)增多,其實際效果越來越接近于平均分配,也就是輪詢的結(jié)果。

優(yōu)缺點和輪詢相似。

隨機

3、源地址哈希法

源地址哈希的思想是根據(jù)客戶端的IP地址,通過哈希函數(shù)計算得到一個數(shù)值,用該數(shù)值對服務(wù)器節(jié)點數(shù)進行取模,得到的結(jié)果便是要訪問節(jié)點序號。采用源地址哈希法進行負載均衡,同一IP地址的客戶端,當后端服務(wù)器列表不變時,它每次都會落到到同一臺服務(wù)器進行訪問。

優(yōu)點:相同的IP每次落在同一個節(jié)點,可以人為干預(yù)客戶端請求方向,例如灰度發(fā)布;

缺點:如果某個節(jié)點出現(xiàn)故障,會導(dǎo)致這個節(jié)點上的客戶端無法使用,無法保證高可用。當某一用戶成為熱點用戶,那么會有巨大的流量涌向這個節(jié)點,導(dǎo)致冷熱分布不均衡,無法有效利用起集群的性能。所以當熱點事件出現(xiàn)時,一般會將源地址哈希法切換成輪詢法。

哈希法

4、加權(quán)輪詢法

不同的后端服務(wù)器可能機器的配置和當前系統(tǒng)的負載并不相同,因此它們的抗壓能力也不相同。給配置高、負載低的機器配置更高的權(quán)重,讓其處理更多的請;而配置低、負載高的機器,給其分配較低的權(quán)重,降低其系統(tǒng)負載,加權(quán)輪詢能很好地處理這一問題,并將請求順序且按照權(quán)重分配到后端。

加權(quán)輪詢算法要生成一個服務(wù)器序列,該序列中包含n個服務(wù)器。n是所有服務(wù)器的權(quán)重之和。在該序列中,每個服務(wù)器的出現(xiàn)的次數(shù),等于其權(quán)重值。并且,生成的序列中,服務(wù)器的分布應(yīng)該盡可能的均勻。比如序列{a, a, a, a, a, b, c}中,前五個請求都會分配給服務(wù)器a,這就是一種不均勻的分配方法,更好的序列應(yīng)該是:{a, a, b, a, c, a, a}。

優(yōu)點:可以將不同機器的性能問題納入到考量范圍,集群性能最優(yōu)大化;

缺點:生產(chǎn)環(huán)境復(fù)雜多變,服務(wù)器抗壓能力也無法精確估算,靜態(tài)算法導(dǎo)致無法實時動態(tài)調(diào)整節(jié)點權(quán)重,只能粗糙優(yōu)化。

 

加權(quán)輪詢

5、加權(quán)隨機法

與加權(quán)輪詢法一樣,加權(quán)隨機法也根據(jù)后端機器的配置,系統(tǒng)的負載分配不同的權(quán)重。不同的是,它是按照權(quán)重隨機請求后端服務(wù)器,而非順序。

6、鍵值范圍法

根據(jù)鍵的范圍進行負債,比如0到10萬的用戶請求走第一個節(jié)點服務(wù)器,10萬到20萬的用戶請求走第二個節(jié)點服務(wù)器……以此類推。

優(yōu)點:容易水平擴展,隨著用戶量增加,可以增加節(jié)點而不影響舊數(shù)據(jù);

缺點:容易負債不均衡,比如新注冊的用戶活躍度高,舊用戶活躍度低,那么壓力就全在新增的服務(wù)節(jié)點上,舊服務(wù)節(jié)點性能浪費。而且也容易單點故障,無法滿足高可用。

鍵值范圍法

(注:以上所提到的單點故障,都可以用主從方式來解決,從節(jié)點監(jiān)聽主節(jié)點心跳,當發(fā)現(xiàn)主節(jié)點死亡,從節(jié)點切換成主節(jié)點頂替上去。這里可以思考一個問題,怎么設(shè)計集群主從可以大程度上降低成本)

動態(tài)負債均衡算法:

1、最小連接數(shù)法

根據(jù)每個節(jié)點當前的連接情況,動態(tài)地選取其中當前積壓連接數(shù)最少的一個節(jié)點處理當前請求,盡可能地提高后端服務(wù)的利用效率,將請求合理地分流到每一臺服務(wù)器。俗稱閑的人不能閑著,大家一起動起來。

優(yōu)點:動態(tài),根據(jù)節(jié)點狀況實時變化;

缺點:提高了復(fù)雜度,每次連接斷開需要進行計數(shù);

實現(xiàn):將連接數(shù)的倒數(shù)當權(quán)重值。

2、最快響應(yīng)速度法

根據(jù)請求的響應(yīng)時間,來動態(tài)調(diào)整每個節(jié)點的權(quán)重,將響應(yīng)速度快的服務(wù)節(jié)點分配更多的請求,響應(yīng)速度慢的服務(wù)節(jié)點分配更少的請求,俗稱能者多勞,扶貧救弱。

優(yōu)點:動態(tài),實時變化,控制的粒度更細,跟靈敏;

缺點:復(fù)雜度更高,每次需要計算請求的響應(yīng)速度;

實現(xiàn):可以根據(jù)響應(yīng)時間進行打分,計算權(quán)重。

3、觀察模式法

觀察者模式是綜合了最小連接數(shù)和最快響應(yīng)度,同時考量這兩個指標數(shù),進行一個權(quán)重的分配。

網(wǎng)頁題目:分布式架構(gòu)下的負載均衡簡單易懂
鏈接分享:http://www.muchs.cn/news29/98579.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、微信小程序、外貿(mào)建站、電子商務(wù)、響應(yīng)式網(wǎng)站、網(wǎng)站營銷

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)