負(fù)載平衡是網(wǎng)絡(luò)或應(yīng)用程序流量分布在服務(wù)器場或服務(wù)器池中的多個服務(wù)器上的過程。負(fù)載均衡器背后的基本思想是通過將客戶端請求或流量路由到其他可能空閑的節(jié)點(diǎn)來避免計算節(jié)點(diǎn)過載。放置在客戶端設(shè)備和后端服務(wù)器之間的網(wǎng)絡(luò)設(shè)備或稱為負(fù)載平衡器的軟件。這些負(fù)責(zé)接收傳入流量并將其路由到可以滿足請求的服務(wù)器。
負(fù)載平衡已成為企業(yè)跟上不斷增長的需求并確保其應(yīng)用程序?yàn)橛脩魡硬⑦\(yùn)行的有效方式。今天的企業(yè)每分鐘都會收到成百上千的客戶對其網(wǎng)站和應(yīng)用程序的請求。在旺季或幾個小時內(nèi),這種流量可能會飆升得更多。服務(wù)器面臨著跟上和響應(yīng)高質(zhì)量媒體的壓力,包括照片、視頻和其他應(yīng)用程序數(shù)據(jù)。這些應(yīng)用程序中的任何中斷或停機(jī)都可能導(dǎo)致體驗(yàn)低于標(biāo)準(zhǔn)并拒絕用戶,從而導(dǎo)致利潤損失。
什么是負(fù)載均衡器?
負(fù)載均衡器是網(wǎng)絡(luò)中分析傳入請求并將其轉(zhuǎn)移到相關(guān)服務(wù)器的設(shè)備或進(jìn)程。負(fù)載均衡器可以是網(wǎng)絡(luò)中的物理設(shè)備、運(yùn)行在專用硬件(虛擬負(fù)載均衡器)上的虛擬化實(shí)例,甚至是軟件進(jìn)程。它還可以集成到應(yīng)用交付控制器 (ADC) 中——旨在提高一般應(yīng)用性能和安全性的網(wǎng)絡(luò)設(shè)備。
為了確保用戶獲得一致的體驗(yàn),負(fù)載均衡器遵循開放系統(tǒng)互連 (OSI) 模型。OSI 是一套不依賴于底層內(nèi)部結(jié)構(gòu)或技術(shù)的系統(tǒng)通信功能標(biāo)準(zhǔn)。根據(jù)這個模型,負(fù)載平衡應(yīng)該發(fā)生在兩層,以獲得最佳和一致的用戶體驗(yàn)。
第 4 層 (L4) 負(fù)載平衡器
這些負(fù)載平衡器根據(jù)它們使用的 TCP 或 UDP 端口以及它們的源和目標(biāo)的 IP 地址來決定如何路由流量數(shù)據(jù)包。L4 負(fù)載平衡器不檢查數(shù)據(jù)包的實(shí)際內(nèi)容,而是在稱為網(wǎng)絡(luò)地址轉(zhuǎn)換的過程中將 IP 地址映射到正確的服務(wù)器。
第 7 層 (L7) 負(fù)載平衡器
L7 負(fù)載均衡器作用于應(yīng)用層,能夠檢查 HTTP 標(biāo)頭、SSL 會話 ID 和其他數(shù)據(jù),以決定將傳入請求路由到哪些服務(wù)器以及如何路由。由于它們需要額外的上下文來理解和處理客戶端對服務(wù)器的請求,因此 L7 負(fù)載均衡器在計算上比 L4 負(fù)載均衡器更占用 CPU,但因此效率更高。
還有另一種類型的負(fù)載平衡稱為全局服務(wù)器負(fù)載平衡。這將 L4 和 L7 負(fù)載均衡器的功能擴(kuò)展到多個數(shù)據(jù)中心,以便在不對最終用戶的服務(wù)產(chǎn)生負(fù)面影響的情況下分配大量流量。這些對于處理來自分布在不同地區(qū)的云數(shù)據(jù)中心的應(yīng)用程序請求也特別有用。
負(fù)載均衡簡史
負(fù)載平衡在 1990 年代作為硬件設(shè)備在網(wǎng)絡(luò)上分配流量而受到重視。隨著互聯(lián)網(wǎng)技術(shù)和連接性的迅速提高,Web 應(yīng)用程序變得更加復(fù)雜,它們的需求超出了單個服務(wù)器的能力。需要找到更好的方法來處理對類似資源的多個請求,并在服務(wù)器之間有效地分配它們。這就是負(fù)載均衡器的起源。
由于負(fù)載平衡允許 Web 應(yīng)用程序避免依賴單個服務(wù)器,因此它還有助于輕松擴(kuò)展這些應(yīng)用程序,使其超出單個服務(wù)器所能支持的范圍。很快,其他功能也得到了發(fā)展,包括提供持續(xù)健康檢查的能力、基于應(yīng)用程序內(nèi)容的智能分發(fā)和其他專業(yè)功能。
2000 年代初期 ADC 的興起是應(yīng)用程序負(fù)載平衡歷史上的一個重要里程碑。ADC 是為提高應(yīng)用程序性能而開發(fā)的網(wǎng)絡(luò)設(shè)備,應(yīng)用程序負(fù)載平衡成為實(shí)現(xiàn)這一目標(biāo)的方法之一。但它們很快就會發(fā)展到涵蓋更多應(yīng)用服務(wù),包括壓縮、緩存、身份驗(yàn)證、Web 應(yīng)用防火墻和其他安全服務(wù)。
負(fù)載平衡和云計算
隨著云計算慢慢開始主導(dǎo)應(yīng)用程序交付,ADC 也隨之發(fā)展。從硬件設(shè)備開始,ADC 也采取了虛擬機(jī)的形式,其軟件從傳統(tǒng)硬件甚至純軟件負(fù)載平衡器中提取。軟件 ADC 執(zhí)行與其硬件對應(yīng)物類似的任務(wù),但也提供更多功能和靈活性。它們允許組織在云環(huán)境中快速擴(kuò)展應(yīng)用程序服務(wù)以滿足需求高峰,同時保持安全性。
負(fù)載平衡如何工作?
負(fù)載均衡器可以采用網(wǎng)絡(luò)中的硬件設(shè)備的形式,也可以是純軟件定義的進(jìn)程。無論它們以哪種形式出現(xiàn),它們都通過根據(jù)各種條件將網(wǎng)絡(luò)流量分配到不同的 Web 服務(wù)器來工作,以防止任何一臺服務(wù)器過載。
想想負(fù)載平衡器,比如交通警察,將繁忙的交通重定向到不那么擁擠的車道以避免擁堵。負(fù)載平衡器有效地管理應(yīng)用服務(wù)器和端點(diǎn)設(shè)備(如 PC、筆記本電腦或平板電腦)之間的無縫信息流。有問題的服務(wù)器可以在本地、數(shù)據(jù)中心或云中。如果沒有負(fù)載平衡器,單個服務(wù)器可能會不堪重負(fù),應(yīng)用程序可能會變得無響應(yīng),從而導(dǎo)致響應(yīng)延遲、使用體驗(yàn)不佳和收入損失。
負(fù)載均衡器工作的確切機(jī)制取決于它們是硬件設(shè)備還是軟件。
硬件與軟件負(fù)載平衡
基于硬件的負(fù)載平衡器通過使用本地硬件和物理設(shè)備來分配網(wǎng)絡(luò)負(fù)載。它們能夠處理大量網(wǎng)絡(luò)流量和高性能應(yīng)用程序。硬件負(fù)載均衡器還可能包含內(nèi)置虛擬化,將許多實(shí)例整合到同一設(shè)備中。
由于它們使用專門的處理器來運(yùn)行軟件,因此它們提供了快速的吞吐量,同時對網(wǎng)絡(luò)或應(yīng)用程序服務(wù)器的物理訪問的需求提高了安全性。不利的一面是,硬件負(fù)載平衡器的成本可能很高,因?yàn)樗枰徺I物理機(jī)器和付費(fèi)顧問來配置、編程和維護(hù)硬件。
軟件負(fù)載平衡如何工作?
另一方面,基于軟件的負(fù)載均衡器可以提供與硬件負(fù)載均衡器相同的好處,同時替換昂貴的硬件。它們可以在任何標(biāo)準(zhǔn)設(shè)備上運(yùn)行,從而節(jié)省空間和硬件成本。軟件負(fù)載均衡器提供了更大的靈活性,可以根據(jù)不斷變化的需求進(jìn)行調(diào)整,并且可以通過添加更多軟件實(shí)例來幫助您擴(kuò)展容量。它們還可以輕松地在托管的異地解決方案或具有內(nèi)部托管的混合模型中用于云上的負(fù)載平衡。
DNS 負(fù)載平衡是一種軟件定義的負(fù)載平衡方法。在這里,客戶端對域名系統(tǒng) (DNS) 中的域的請求分布在各種服務(wù)器上。每次 DNS 系統(tǒng)響應(yīng)新的客戶端請求時,它都會發(fā)送不同版本的 IP 地址列表。這確保了 DNS 請求被平均分配到不同的服務(wù)器以處理整體負(fù)載。通過自動刪除無響應(yīng)的服務(wù)器,DNS 負(fù)載平衡允許自動故障轉(zhuǎn)移或備份到工作服務(wù)器。
不同類型的負(fù)載平衡算法
網(wǎng)絡(luò)負(fù)載平衡器使用多種方法或技術(shù)來管理和分配負(fù)載。它們在確定哪個應(yīng)用程序服務(wù)器應(yīng)該接收每個客戶端請求時使用的算法不同。五種最常見的負(fù)載平衡方法是:
循環(huán)賽
在這種方法中,傳入的請求會周期性地轉(zhuǎn)發(fā)到每個服務(wù)器。當(dāng)它到達(dá)最后一個服務(wù)器時,從第一個服務(wù)器開始重復(fù)循環(huán)。它是最簡單的實(shí)現(xiàn)方法之一,但可能不是最有效的,因?yàn)樗僭O(shè)所有服務(wù)器都具有相似的容量。該方法還有兩個其他變體——加權(quán)循環(huán)和動態(tài)循環(huán)——可以針對這個假設(shè)進(jìn)行調(diào)整。
IP 哈希
這是一種相對簡單的負(fù)載平衡方法,其中客戶端的 IP 地址確定哪個服務(wù)器接收其請求。它使用一種算法來生成唯一的散列密鑰,或源和目標(biāo) IP 地址的加密版本。然后使用此密鑰將客戶端的請求分配給特定的服務(wù)器。
最少的連接
在最少連接方法中,流量被轉(zhuǎn)移到具有最少活動連接的服務(wù)器。此方法非常適合流量大的情況,有助于在所有可用服務(wù)器之間平均分配流量。
最短響應(yīng)時間
在最短響應(yīng)時間方法中,流量被定向到滿足兩個條件的服務(wù)器——它應(yīng)該具有最少的活動連接數(shù)量和最低的平均響應(yīng)時間。
最小帶寬
在這種方法中,負(fù)載均衡器查看服務(wù)器在過去 14 秒內(nèi)的帶寬消耗(以 Mbps 為單位)。選擇消耗最少帶寬的那個來發(fā)送客戶端請求。
負(fù)載平衡的好處
歸根結(jié)底,負(fù)載均衡是為了幫助企業(yè)有效地管理網(wǎng)絡(luò)流量和應(yīng)用程序負(fù)載,以便為最終用戶提供可靠、一致的體驗(yàn)。在這樣做時,負(fù)載平衡器提供了以下好處。
滿足流量高峰的可擴(kuò)展性
負(fù)載平衡可幫助企業(yè)掌握流量波動或峰值,并增加或減少服務(wù)器以滿足不斷變化的需求。這有助于企業(yè)利用客戶需求的突然增加來增加收入。例如,電子商務(wù)網(wǎng)站可能會在假期和促銷期間出現(xiàn)網(wǎng)絡(luò)流量高峰。擴(kuò)展服務(wù)器容量以平衡其負(fù)載的能力可能是新客戶或保留客戶的銷售增長與不滿意客戶造成的重大流失之間的區(qū)別。
冗余以最大程度地減少停機(jī)時間
網(wǎng)站服務(wù)器在出現(xiàn)前所未有的流量高峰時發(fā)生故障的情況并不少見。但是,如果您可以在多個 Web 服務(wù)器上維護(hù)網(wǎng)站,則可以限制任何單個服務(wù)器上的停機(jī)時間可能造成的損害。負(fù)載平衡可幫助您在某個服務(wù)器發(fā)生故障時自動將網(wǎng)絡(luò)負(fù)載轉(zhuǎn)移到工作服務(wù)器,從而增加一層自動化以使您的工作負(fù)載現(xiàn)代化。您可以將一臺服務(wù)器保持在主動模式以接收流量,而另一臺則保持在被動模式,準(zhǔn)備好在主動模式失敗時上線。這種安排為企業(yè)提供了保證,即一臺服務(wù)器將始終處于活動狀態(tài)以處理硬件故障實(shí)例。
執(zhí)行維護(hù)的靈活性
暫時將流量轉(zhuǎn)移到被動服務(wù)器的能力還允許開發(fā)人員靈活地對故障服務(wù)器執(zhí)行維護(hù)工作。您可以將所有流量指向一臺服務(wù)器并將負(fù)載均衡器設(shè)置為活動模式。然后,您的 IT 支持團(tuán)隊(duì)可以在無源服務(wù)器上執(zhí)行軟件更新和補(bǔ)丁程序,在生產(chǎn)環(huán)境中進(jìn)行測試,并在一切正常后將服務(wù)器切換到活動狀態(tài)。
主動故障檢測
負(fù)載平衡可幫助企業(yè)檢測服務(wù)器中斷并通過將資源分配給未受影響的服務(wù)器來繞過它們。這使您可以有效地管理服務(wù)器,尤其是當(dāng)它們分布在多個數(shù)據(jù)中心和云提供商之間時。在軟件負(fù)??載均衡器的情況下尤其如此,它可以利用預(yù)測分析在潛在的流量瓶頸發(fā)生之前發(fā)現(xiàn)它們。
DDoS 攻擊緩解
負(fù)載均衡器在服務(wù)器之間分配流量的能力也有助于防御分布式拒絕服務(wù) (DDoS) 攻擊。當(dāng)單個服務(wù)器因DDoS 攻擊而過載時,負(fù)載均衡器通過將流量重新路由到其他服務(wù)器并減少攻擊面來提供幫助。通過這種方式,負(fù)載平衡消除了單點(diǎn)故障,并使您的網(wǎng)絡(luò)能夠抵御此類攻擊。
負(fù)載平衡作為一項(xiàng)技術(shù)隨著時間的推移而發(fā)展,并且仍然是企業(yè)提供不間斷用戶體驗(yàn)的重要方式。除了 IT 團(tuán)隊(duì)減少停機(jī)時間和高可用性的好處之外,負(fù)載平衡還為企業(yè)提供了擴(kuò)展資源、滿足客戶需求和創(chuàng)造收入的新機(jī)會。