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