高可用性負(fù)載平衡?(HALB) 對于防止?jié)撛诘臑?zāi)難性組件故障至關(guān)重要。此概念的核心是使用主負(fù)載均衡器和輔助負(fù)載均衡器系統(tǒng)在數(shù)據(jù)中心之間自動分配工作負(fù)載。負(fù)載平衡器和服務(wù)器中的這種冗余確保近乎連續(xù)的應(yīng)用程序交付。在這樣的系統(tǒng)中,當(dāng)負(fù)載平衡器或服務(wù)器發(fā)生故障時(shí),相應(yīng)的備份設(shè)備將取而代之。
了解負(fù)載平衡的工作原理
負(fù)載平衡器在服務(wù)器之間分配工作負(fù)載,以便沒有一臺服務(wù)器因請求而超載。在路由流量時(shí),負(fù)載均衡器還會監(jiān)控每臺服務(wù)器的健康狀況。當(dāng)他們檢測到即將發(fā)生服務(wù)器故障的跡象時(shí),他們會將流量重新路由到另一臺服務(wù)器。這確保無論服務(wù)器請求的數(shù)量如何,您的系統(tǒng)都保持響應(yīng)和可用。
負(fù)載均衡器使用會話持久性來防止在多個(gè)會話請求正常的應(yīng)用程序(例如購物車)中出現(xiàn)性能問題和事務(wù)失敗。通過會話持久性,負(fù)載平衡器能夠?qū)儆谕粫挼恼埱蟀l(fā)送到同一服務(wù)器。
在稱為 SSL 終止的過程中,負(fù)載平衡器還可以在將請求傳遞到服務(wù)器之前解密 SSL 流量。但是,這種方法可能會使負(fù)載平衡器和服務(wù)器之間的流量暴露給潛在的攻擊。為防止這種情況,您可以將負(fù)載均衡器設(shè)置為將加密請求發(fā)送到服務(wù)器,而不是先對其進(jìn)行解密。這種所謂的 SSL 直通會帶來潛在的性能問題,但如果您需要額外的安全性,這可能是理想的選擇。
在分布式拒絕服務(wù) (DDoS) 攻擊的情況下,負(fù)載均衡器還可以將 DDoS 流量轉(zhuǎn)移到云提供商,從而減輕攻擊對您的基礎(chǔ)設(shè)施的影響。為了確保高可用性負(fù)載平衡,您至少應(yīng)該有另一個(gè)負(fù)載平衡器作為備份。這種所謂的 N+1 模型是成本最低的高可用性負(fù)載平衡模型。
主動-主動和主動-被動是其他高可用性負(fù)載、平衡模型。在 Active-Active 中,兩個(gè)或多個(gè)負(fù)載平衡器同時(shí)運(yùn)行。在 Active-Standby 中,每個(gè)負(fù)載均衡器都有一個(gè)指定的備份,在它出現(xiàn)故障時(shí)將接管其負(fù)載。
負(fù)載均衡器分配負(fù)載的算法
為了分配工作負(fù)載,負(fù)載均衡器依賴于以下任何一種算法:
- 最少連接數(shù):請求發(fā)送到活動連接數(shù)最少的服務(wù)器。
- 最短響應(yīng)時(shí)間:請求被發(fā)送到活動連接數(shù)最少且平均響應(yīng)時(shí)間最短的服務(wù)器。
- Round Robin:請求按順序發(fā)送到可用的服務(wù)器,例如,服務(wù)器 1 獲得請求 1,服務(wù)器 2 獲得請求 2,依此類推。
- IP Hash:根據(jù)客戶端的 IP 地址將請求發(fā)送到服務(wù)器。
- 哈希:根據(jù)您選擇的密鑰將請求發(fā)送到服務(wù)器,例如,請求 URL。
- 隨機(jī):請求被發(fā)送到任何隨機(jī)服務(wù)器。通常與最少連接和最少響應(yīng)時(shí)間算法結(jié)合使用。
您選擇的算法最終將取決于您的要求。
高可用性負(fù)載平衡的主要優(yōu)勢
負(fù)載平衡器用于在多臺服務(wù)器之間分配網(wǎng)絡(luò)流量和應(yīng)用程序工作負(fù)載,以免任何一臺服務(wù)器不堪重負(fù)。您的 IT 基礎(chǔ)架構(gòu)的高可用性或連續(xù)運(yùn)行是通過此冗余系統(tǒng)實(shí)現(xiàn)的。
理想情況下,這種從一臺故障設(shè)備到另一臺設(shè)備的切換應(yīng)該無縫進(jìn)行,這樣用戶就不會遇到任何停機(jī)時(shí)間。在現(xiàn)實(shí)世界中,最短的停機(jī)時(shí)間是更容易實(shí)現(xiàn)的目標(biāo)。
高度可用的負(fù)載平衡器通過 SYN cookie 和延遲綁定保護(hù)您的組織免受分布式拒絕服務(wù) (DDOS) 攻擊。他們還定期進(jìn)行健康檢查,以確保您的應(yīng)用程序和服務(wù)器仍然可以處理大量交易請求。當(dāng)他們檢測到即將發(fā)生的故障時(shí),他們會將流量重新路由到應(yīng)用程序副本和備份服務(wù)器。對于 Web 服務(wù)器,高可用性負(fù)載平衡器可以將 TLS 請求與主要 HTTPS 請求分開,并在此過程中加快 Web 服務(wù)器響應(yīng)。
硬件和軟件負(fù)載平衡器的特點(diǎn)
負(fù)載均衡器主要分為兩類:硬件負(fù)載均衡器和軟件負(fù)載均衡器。這些將在接下來的兩節(jié)中進(jìn)行解釋。
硬件
硬件負(fù)載平衡器由物理硬件組成,例如設(shè)備。它們根據(jù)與服務(wù)器的現(xiàn)有連接數(shù)、處理器利用率和服務(wù)器性能等標(biāo)準(zhǔn)將流量定向到服務(wù)器。它們帶有需要維護(hù)和軟件更新的固件。
硬件負(fù)載平衡器提供更好的性能和控制以及更全面的功能——如 Kerberos 身份驗(yàn)證和安全套接字層 (SSL) 硬件加速——但需要一定程度的管理和維護(hù)熟練程度。由于是基于硬件的,這些負(fù)載均衡器不是很靈活和可擴(kuò)展,所以有過度配置硬件負(fù)載均衡器的趨勢。
軟件
與需要專有硬件設(shè)備的硬件負(fù)載平衡器不同,軟件負(fù)載平衡器只是您可以安裝在標(biāo)準(zhǔn) x86 服務(wù)器或虛擬機(jī) (VM) 上以實(shí)現(xiàn)負(fù)載平衡的應(yīng)用程序。這兩種負(fù)載平衡解決方案之間的另一個(gè)關(guān)鍵區(qū)別在于它們的擴(kuò)展能力。
硬件和軟件負(fù)載平衡器之間的差異
雖然軟件負(fù)載均衡器可以實(shí)時(shí)彈性擴(kuò)展以滿足用戶需求,但您必須物理配置硬件負(fù)載均衡器以滿足高峰需求。軟件負(fù)載平衡器比硬件版本更易于部署。它們也更具成本效益和靈活性,并與軟件開發(fā)環(huán)境結(jié)合使用。軟件方法為您提供了根據(jù)環(huán)境的特定需求配置負(fù)載平衡器的靈活性。與提供更多封閉式方法的硬件版本相比,軟件平衡器在更改和升級方面為您提供更多自由。
軟件負(fù)載平衡器可以作為預(yù)打包的虛擬機(jī) (VM) 提供,以節(jié)省您的一些配置,但可能無法提供硬件版本可用的所有功能。軟件負(fù)載平衡器可以作為需要配置和管理的獨(dú)立解決方案使用,也可以作為云服務(wù)使用——稱為負(fù)載平衡器即服務(wù) (LBaaS)。選擇云服務(wù),將您從本地安裝的服務(wù)器的維護(hù)、管理和升級中解放出來。云提供商處理這些任務(wù)。
高可用性負(fù)載平衡的重要特性
除了確保基礎(chǔ)架構(gòu)的高可用性外,您還應(yīng)該確保基礎(chǔ)架構(gòu)為其管理的流量的應(yīng)用程序提供持續(xù)服務(wù)。如果任何服務(wù)器出現(xiàn)故障,高可用性基礎(chǔ)架構(gòu)可以將流量快速重新路由到同一集群中的另一臺服務(wù)器。
以下是此類高可用性基礎(chǔ)架構(gòu)應(yīng)具備的一些基本功能:
負(fù)載平衡方法。為獲得最佳性能,您的高可用性基礎(chǔ)架構(gòu)應(yīng)采用盡可能多的負(fù)載平衡方法,包括最少連接數(shù)、循環(huán)法、加權(quán)循環(huán)法、最快響應(yīng)等。
健康監(jiān)測。您應(yīng)該持續(xù)評估高可用性服務(wù)器,以確保在最短或無停機(jī)時(shí)間內(nèi)快速進(jìn)行故障轉(zhuǎn)移。一些可以幫助您進(jìn)行健康監(jiān)控的指標(biāo)包括良好的 TLS 連接數(shù)和按服務(wù)劃分的平均應(yīng)用程序服務(wù)器延遲。