自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

負(fù)載均衡原理最全詳解

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

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

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

解決訪問(wèn)統(tǒng)一入口問(wèn)題,我們可以在集群前面增加負(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ù)的問(wèn)題。

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

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

圖片圖片

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


責(zé)任編輯:武曉燕 來(lái)源: mikechen的互聯(lián)網(wǎng)架構(gòu)
相關(guān)推薦

2024-08-30 10:29:21

2020-04-27 10:00:53

負(fù)載均衡互聯(lián)網(wǎng)架構(gòu)

2010-05-05 18:58:34

STP負(fù)載均衡

2012-05-07 10:20:12

LVS集群

2023-07-13 09:01:39

Bean接口容器

2015-09-25 09:56:37

負(fù)載均衡

2010-04-20 20:46:01

負(fù)載均衡

2010-05-04 10:56:18

jboss負(fù)載均衡

2017-07-03 08:08:25

負(fù)載均衡分類

2010-05-07 13:09:06

2015-12-14 10:26:40

2019-11-04 15:35:53

Nginx反向代理負(fù)載均衡

2019-09-19 09:03:13

Docker負(fù)載均衡服務(wù)

2018-11-16 10:39:02

Nginx負(fù)載均衡方案

2024-06-18 08:14:21

2010-05-06 12:18:34

IP負(fù)載均衡

2010-04-20 14:15:49

負(fù)載均衡產(chǎn)品

2018-09-13 08:47:09

Tomcat負(fù)載均衡服務(wù)器

2023-02-07 06:42:24

Pulsar負(fù)載均衡

2010-04-26 15:14:46

DNS負(fù)載均衡
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)