【科普篇】什么是負載平衡?| 負載平衡器如何運作

來源:Cloudflare
作者:Cloudflare
時間:2023-10-22
1293
負載平衡是在兩臺或更多的計算機之間分配計算工作負荷的做法。在互聯(lián)網(wǎng)上,負載平衡經(jīng)常被用來在幾個服務(wù)器之間分配網(wǎng)絡(luò)流量。

640 (1).png

什么是負載平衡?

負載平衡是在兩臺或更多的計算機之間分配計算工作負荷的做法。在互聯(lián)網(wǎng)上,負載平衡經(jīng)常被用來在幾個服務(wù)器之間分配網(wǎng)絡(luò)流量。這能夠減少每臺服務(wù)器的壓力,使服務(wù)器更有效率,加快性能,減少延遲。負載平衡對于大多數(shù)互聯(lián)網(wǎng)應(yīng)用的正常運行是必不可少的。

640.jpg640 (1).jpg

想象一下,一家超市有8個結(jié)賬收銀通路,但其中只有一條是開放的。所有的顧客都必須排在同一條線上,因此顧客要花很長時間才能為他們的物品買單?,F(xiàn)在想象一下,超市開放全部8條結(jié)賬通路。在這種情況下,顧客的等待時間大約縮短了8倍(取決于每個顧客購買多少物品等因素)。

負載平衡本質(zhì)上是完成了同樣的事情。通過在多個服務(wù)器之間分配用戶請求,大大減少了用戶等待時間。這會帶來更好的用戶體驗——上述示例中的超市客戶如果總是等待很長時間,他們可能會尋找效率更高的商家。

負載平衡如何運作?

負載平衡由稱為負載平衡器的工具或應(yīng)用程序處理。負載平衡器可以是基于硬件的,也可以是基于軟件的。硬件負載平衡器需要安裝專用的負載平衡設(shè)備;基于軟件的負載平衡器可以在服務(wù)器、虛擬機或云中運行。內(nèi)容交付網(wǎng)絡(luò)(CDN)通常包括負載平衡功能。

當來自用戶的請求到達時,負載平衡器將請求分配到給定的服務(wù)器,并對于每個請求重復(fù)此過程。負載平衡器根據(jù)多種不同的算法確定應(yīng)由哪個服務(wù)器處理每個請求。這些算法分為兩大類:靜態(tài)和動態(tài)。

靜態(tài)負載平衡算法:Static load balancing algorithms

靜態(tài)負載平衡算法在分配工作負載時不考慮系統(tǒng)的當前狀態(tài)。靜態(tài)負載平衡器不會知道哪些服務(wù)器運行緩慢以及哪些服務(wù)器沒有被充分使用。相反,它根據(jù)預(yù)先確定的計劃分配工作負載。靜態(tài)負載平衡可以快速設(shè)置,但會導(dǎo)致效率低下。

回到上面的類比,想象一下如果超市開放了8條結(jié)賬通路,有一名員工的工作是引導(dǎo)顧客排隊。想象一下,這個員工只是按順序指引,將第一個客戶分配到第1列,將第二個客戶分配到第2列,依此類推,而沒有回頭查看這些隊伍的移動速度。如果8位收銀員都高效工作,那么這個系統(tǒng)就可以正常工作——但如果一個或多個收銀員落后,一些隊伍可能會變得比其他隊伍長得多,從而導(dǎo)致糟糕的客戶體驗。靜態(tài)負載平衡也存在同樣的風險:有時,個別服務(wù)器仍會變得不堪重負。

循環(huán)DNS和客戶端隨機負載平衡是靜態(tài)負載平衡的兩種常見形式。

動態(tài)負載平衡算法:Dynamic load balancing algorithms

動態(tài)負載平衡算法會考慮每臺服務(wù)器的當前可用性、工作負載和運行狀況。他們可以將流量從負擔過重或性能不佳的服務(wù)器轉(zhuǎn)移到未被充分利用的服務(wù)器,從而保持分配的均勻和高效。但是,動態(tài)負載平衡更難配置。影響服務(wù)器可用性的因素有很多:每臺服務(wù)器的運行狀況和整體容量、正在分配的任務(wù)的體量等等。

假設(shè)超市員工將顧客指引到收銀臺時使用了一種相對更為動態(tài)的方法:員工仔細觀察隊伍,看看哪個隊伍走得最快,觀察每個顧客購買了多少物品,并相應(yīng)地分流顧客。這可以確保為所有客戶提供更高效的體驗,但也會給指引排隊的員工帶來更大的壓力。

有幾種類型的動態(tài)負載平衡算法,包括最少連接、加權(quán)最少連接、基于資源和基于地理位置的負載平衡。

負載平衡用于何處?

如上所述,負載平衡通常用于Web應(yīng)用程序?;谲浖突谠频呢撦d平衡器有助于在托管應(yīng)用程序的服務(wù)器之間平均分配互聯(lián)網(wǎng)流量。一些云負載平衡產(chǎn)品可以在全球分布的服務(wù)器之間平衡互聯(lián)網(wǎng)流量負載,這一過程稱為全局服務(wù)器負載平衡(GSLB)。

負載平衡也常用于大型本地化網(wǎng)絡(luò),例如數(shù)據(jù)中心或大型辦公大樓內(nèi)的網(wǎng)絡(luò)。傳統(tǒng)上,這需要使用硬件設(shè)備,例如應(yīng)用程序交付控制器(ADC)或?qū)S秘撦d平衡設(shè)備?;谲浖呢撦d平衡器也用于此目的。

服務(wù)器運行狀況監(jiān)控

動態(tài)負載平衡器必須了解服務(wù)器的運行狀況:它們的當前狀態(tài)、它們的性能等。動態(tài)負載平衡器通過執(zhí)行定期的服務(wù)器運行狀況檢查來監(jiān)控服務(wù)器。如果一個服務(wù)器或一組服務(wù)器運行緩慢,負載平衡器分配給它的流量就會減少。如果一個服務(wù)器或一組服務(wù)器完全發(fā)生故障,負載平衡器會將流量重新路由到另一組服務(wù)器,這一過程稱為“故障轉(zhuǎn)移”。

服務(wù)器故障轉(zhuǎn)移

當給定服務(wù)器無法運行并且負載平衡器將其正常進程分配到輔助服務(wù)器或服務(wù)器組時,就會發(fā)生故障轉(zhuǎn)移。服務(wù)器故障轉(zhuǎn)移對于可靠性至關(guān)重要:如果沒有適當?shù)膫浞?,服?wù)器崩潰可能會導(dǎo)致網(wǎng)站或應(yīng)用程序癱瘓??焖龠M行故障轉(zhuǎn)移以避免服務(wù)中斷非常重要。

立即登錄,閱讀全文
原文鏈接:點擊前往 >
文章來源:Cloudflare
版權(quán)說明:本文內(nèi)容來自于Cloudflare,本站不擁有所有權(quán),不承擔相關(guān)法律責任。文章內(nèi)容系作者個人觀點,不代表快出海對觀點贊同或支持。如有侵權(quán),請聯(lián)系管理員(zzx@kchuhai.com)刪除!
優(yōu)質(zhì)服務(wù)商推薦
更多