在线不卡日本ⅴ一区v二区_精品一区二区中文字幕_天堂v在线视频_亚洲五月天婷婷中文网站

  • <menu id="lky3g"></menu>
  • <style id="lky3g"></style>
    <pre id="lky3g"><tt id="lky3g"></tt></pre>

    負(fù)載均衡原理算法與4大負(fù)載方式(全面詳解)

    負(fù)載均衡原理算法與4大負(fù)載方式(全面詳解)

    原文鏈接:https://mikechen.cc/14875.html

    為什么需要負(fù)載均衡

    當(dāng)系統(tǒng)面臨大量用戶訪問,負(fù)載過(guò)高的時(shí)候,通常會(huì)使用增加服務(wù)器數(shù)量來(lái)進(jìn)行橫向擴(kuò)展,使用集群和負(fù)載均衡提高整個(gè)系統(tǒng)的處理能力。

    從單機(jī)網(wǎng)站到分布式網(wǎng)站,很重要的區(qū)別是業(yè)務(wù)拆分和分布式部署,將應(yīng)用拆分后,部署到不同的機(jī)器上,實(shí)現(xiàn)大規(guī)模分布式系統(tǒng)。

    分布式和業(yè)務(wù)拆分解決了,從集中到分布的問題,但是每個(gè)部署的獨(dú)立業(yè)務(wù)還存在單點(diǎn)的問題和訪問統(tǒng)一入口問題,為解決單點(diǎn)故障,我們可以采取冗余的方式,將相同的應(yīng)用部署到多臺(tái)機(jī)器上。

    解決訪問統(tǒng)一入口問題,我們可以在集群前面增加負(fù)載均衡設(shè)備,實(shí)現(xiàn)流量分發(fā)。

    負(fù)載均衡的作用

    1.解決并發(fā)壓力

    提高應(yīng)用處理性能,增加吞吐量,加強(qiáng)網(wǎng)絡(luò)處理能力。

    2.實(shí)現(xiàn)高可用

    提供故障轉(zhuǎn)移,實(shí)現(xiàn)整個(gè)應(yīng)用的高可用。

    3.實(shí)現(xiàn)擴(kuò)展性

    通過(guò)添加或減少服務(wù)器數(shù)量,提供網(wǎng)站伸縮性擴(kuò)展性。

    4.實(shí)現(xiàn)安全防護(hù)

    負(fù)載均衡設(shè)備上做一些過(guò)濾,黑白名單等處理。

    負(fù)載均衡的原理

    系統(tǒng)的擴(kuò)展可分為縱向(垂直)擴(kuò)展和橫向(水平)擴(kuò)展。

    縱向擴(kuò)展,是從單機(jī)的角度通過(guò)增加硬件處理能力,比如CPU處理能力,內(nèi)存容量,磁盤等方面,實(shí)現(xiàn)服務(wù)器處理能力的提升,不能滿足大型分布式系統(tǒng)(網(wǎng)站),大流量,高并發(fā),海量數(shù)據(jù)的問題。

    因此需要采用橫向擴(kuò)展的方式,通過(guò)添加機(jī)器來(lái)滿足大型網(wǎng)站服務(wù)的處理能力。

    比如:一臺(tái)機(jī)器不能滿足,則增加兩臺(tái)或者多臺(tái)機(jī)器,共同承擔(dān)訪問壓力。這就是典型的集群和負(fù)載均衡架構(gòu):如下圖:

    • 應(yīng)用集群:將同一應(yīng)用部署到多臺(tái)機(jī)器上,組成處理集群,接收負(fù)載均衡設(shè)備分發(fā)的請(qǐng)求,進(jìn)行處理,并返回相應(yīng)數(shù)據(jù)。
    • 負(fù)載均衡設(shè)備:將用戶訪問的請(qǐng)求,根據(jù)負(fù)載均衡算法,分發(fā)到集群中的一臺(tái)處理服務(wù)器。

    負(fù)載均衡算法

    1.輪循

    輪詢很容易實(shí)現(xiàn),將請(qǐng)求按順序輪流分配到后臺(tái)服務(wù)器上,均衡的對(duì)待每一臺(tái)服務(wù)器,而不關(guān)心服務(wù)器實(shí)際的連接數(shù)和當(dāng)前的系統(tǒng)負(fù)載。適合場(chǎng)景:適合于應(yīng)用服務(wù)器硬件都相同的情況。

    2.加權(quán)輪循

    在輪詢的基礎(chǔ)上根據(jù)硬件配置不同,按權(quán)重分發(fā)到不同的服務(wù)器。適合場(chǎng)景:跟配置高、負(fù)載低的機(jī)器分配更高的權(quán)重,使其能處理更多的請(qǐng)求,而性能低、負(fù)載高的機(jī)器,配置較低的權(quán)重,讓其處理較少的請(qǐng)求。

    3.隨機(jī)

    通過(guò)系統(tǒng)隨機(jī)函數(shù),根據(jù)后臺(tái)服務(wù)器列表的大小值來(lái)隨機(jī)選取其中一臺(tái)進(jìn)行訪問。

    隨著調(diào)用量的增大,客戶端的請(qǐng)求可以被均勻地分派到所有的后端服務(wù)器上,其實(shí)際效果越來(lái)越接近于平均分配流量到后臺(tái)的每一臺(tái)服務(wù)器,也就是輪詢法的效果。

    4.最少連接

    記錄每個(gè)服務(wù)器正在處理的請(qǐng)求數(shù),把新的請(qǐng)求分發(fā)到最少連接的服務(wù)器上,因?yàn)橐S護(hù)內(nèi)部狀態(tài)不推薦。

    5.源地址散列

    根據(jù)服務(wù)消費(fèi)者請(qǐng)求客戶端的IP地址,通過(guò)哈希函數(shù)計(jì)算得到一個(gè)哈希值,將此哈希值和服務(wù)器列表的大小進(jìn)行取模運(yùn)算,得到的結(jié)果便是要訪問的服務(wù)器地址的序號(hào)。

    適合場(chǎng)景:根據(jù)請(qǐng)求的來(lái)源IP進(jìn)行hash計(jì)算,同一IP地址的客戶端,當(dāng)后端服務(wù)器列表不變時(shí),它每次都會(huì)映射到同一臺(tái)后端服務(wù)器進(jìn)行訪問。

    負(fù)載均衡的分類

    1.二層負(fù)載均衡(mac)

    根據(jù)OSI模型分的二層負(fù)載,一般是用虛擬mac地址方式,外部對(duì)虛擬MAC地址請(qǐng)求,負(fù)載均衡接收后分配后端實(shí)際的MAC地址響應(yīng)。備注:MAC(Media Access Control Address)

    2.三層負(fù)載均衡(ip)

    一般采用虛擬IP地址方式,外部對(duì)虛擬的ip地址請(qǐng)求,負(fù)載均衡接收后分配后端實(shí)際的IP地址響應(yīng)。

    3.四層負(fù)載均衡(tcp)

    四層的負(fù)載均衡在三層負(fù)載均衡的基礎(chǔ)上,通過(guò)發(fā)布三層的IP地址(VIP),然后加四層的端口號(hào),來(lái)決定哪些流量需要做負(fù)載均衡。

    四層負(fù)載均衡在中間傳輸層執(zhí)行,它處理消息的傳遞,但不考慮消息的內(nèi)容,用ip+port接收請(qǐng)求,再轉(zhuǎn)發(fā)到對(duì)應(yīng)的機(jī)器。

    四層負(fù)載均衡不理解應(yīng)用協(xié)議,比如:

    • HTTP
    • FTP
    • MySQL等等

    實(shí)現(xiàn)四層負(fù)載均衡的軟件有:

    • F5:硬件負(fù)載均衡器,功能很好,但是成本很高。
    • lvs:重量級(jí)的四層負(fù)載軟件
    • nginx:輕量級(jí)的四層負(fù)載軟件,帶緩存功能,正則表達(dá)式較靈活
    • haproxy:模擬四層轉(zhuǎn)發(fā),較靈活

    4.七層負(fù)載均衡(http)

    七層負(fù)載均衡不同于四層負(fù)載均衡,它在高級(jí)應(yīng)用層上執(zhí)行,會(huì)處理每個(gè)消息的實(shí)際內(nèi)容。

    所謂七層負(fù)載均衡,也稱為“內(nèi)容交換”,也就是主要通過(guò)報(bào)文中的真正有意義的應(yīng)用層內(nèi)容,決定最終選擇的內(nèi)部服務(wù)器。

    七層負(fù)載均衡它可以根據(jù)消息內(nèi)容(如URL)做出負(fù)載均衡決策,比如:對(duì)URL圖片類的請(qǐng)求轉(zhuǎn)發(fā)到特定的圖片服務(wù)器。

    實(shí)現(xiàn)七層負(fù)載均衡的軟件有:

    • HAproxy:天生負(fù)載均衡技能,全面支持七層代理,會(huì)話保持,標(biāo)記,路徑轉(zhuǎn)移;
    • Nginx:只在http協(xié)議和mail協(xié)議上功能比較好,性能與haproxy差不多;
    • apache:功能較差

    總的來(lái)說(shuō),一般是LVS做4層負(fù)載,Nginx或者Haproxy做7層負(fù)載,性能上LVS>HA>Nginx,功能性和便利性上Nginx>HA>LVS。

    鄭重聲明:本文內(nèi)容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場(chǎng),版權(quán)歸原作者所有,如有侵權(quán)請(qǐng)聯(lián)系管理員(admin#wlmqw.com)刪除。
    上一篇 2022年6月23日 12:11
    下一篇 2022年6月23日 12:12

    相關(guān)推薦

    聯(lián)系我們

    聯(lián)系郵箱:admin#wlmqw.com
    工作時(shí)間:周一至周五,10:30-18:30,節(jié)假日休息