什麼是Load Balancers
Load Balancer 介紹
負載平衡層是數據中心內防火牆之後的第一個接觸點。 如果服務每秒處理幾百甚至幾千個請求,則可能不需要負載均衡器。 但是,為了增加客戶端請求,負載均衡器提供以下功能:
- Scalability(可擴展性): 通過server可以增加application/server容量.
- Availability(可用性): 即使server故障,系統一樣可以用,load balancers 工作之一就是隱藏服務器的故障.
- Performance:(性能): 負載平衡器,可以將這種請求轉發到較小的服務器,因此用戶可以獲得更快的響應時間, 也同樣提高資源的利用率
Load balancer提供的服務:
- Health checking: 會檢查server是否是正常的.
- TLS termination: LBs 通過與客戶處理TLS cache 減輕server的負擔
- Predictive analytics: LBs可以通過他們對流量的執行分析,或使用時間推移得到流量數據,來預測流量預測模式.
- Reduced human interventio: 減少人為所需處理故障的時間.
- Service discovery: LBs 的一個優點是通過查詢服務註冊表將客戶端的請求轉發到適當的託管服務器。
- Security: LB 還可以通過減輕 OSI 模型不同層(第 3、4 和 7 層)的拒絕服務 (DoS) 等攻擊來提高安全性。
Application delivery controllers (ADCs) 應用交付控制器 (ADC) 是應用交付網絡 (ADN) 的一部分。 它們可以被認為是提供各種服務(包括負載均衡)的 LB 的超集。 ADC 的主要任務是執行 Web 加速以減少服務器群的負載。 第 3 層和第 7 層之間的一些眾所周知的服務包括緩存、SSL 卸載、代理/反向代理服務、IP 流量優化等等。 ADC 也實現 GSLB。
Q: DNS 可以被視為全局服務器負載均衡器 (GSLB) 嗎?
A: 可以, 是的,實際上有兩種方式進行全局流量管理:
- GTM 通過 ADC:一些 ADC 實現 GSLB。 在這種情況下,ADC 可以實時查看託管服務器,並根據數據中心的運行狀況和容量轉發請求。
- GTM 通過 DNS:DNS 通過分析客戶端的 IP 位置來進行 GSLB。 對於每個請求 IP 域名的用戶(例如,www.netflix.com),基於 DNS 的 GSLB 會轉發地理上更靠近請求 IP 位置的數據中心的 IP 地址。
Weighted round-robin:如果某些服務器具有更高的服務客戶端請求的能力,那麼最好使用加權循環算法。 在加權循環算法中,每個節點都被分配了一個權重。 LB 根據節點的權重轉發客戶端的請求。 權重越高,分配的數量越多。
負載均衡器的算法
-
最少連接:在某些情況下,即使所有服務器都具有相同的服務客戶端的能力,某些服務器上的負載不均衡仍然是可能的。 例如,一些客戶可能有一個需要更長的服務時間的請求。 或者某些客戶端可能在同一連接上有後續請求。 在這種情況下,我們可以使用像最少連接這樣的算法,將新到達的請求分配給現有連接較少的服務器。 在這種情況下,LB 會保留現有連接的數量和映射狀態。
-
最短響應時間:在性能敏感的服務中,需要使用最短響應時間等算法。 該算法確保請求響應時間最少的服務器為客戶端提供服務。
-
IP 散列:一些應用程序根據用戶的 IP 地址向用戶提供不同級別的服務。 在這種情況下,對 IP 地址進行哈希處理以將用戶的請求分配給服務器。
-
URL Hash:應用程序中的某些服務可能僅由特定服務器提供。 在這種情況下,從 URL 請求服務的客戶端被分配到某個集群或一組服務器。 URL 哈希算法用於這些場景。
請求到達後端服務器後,響應是否應該通過負載均衡器的每一層路由回來?
不需要,服務器可以通過第 3 層 LB 將響應直接發送到路由器(第 1 層 LB),路由器可以轉發來自數據中心的響應。 這種響應稱為直接路由 (DR) 或直接服務器返回 (DSR)。
負載均衡器的實現
-
Hardware load balancers: 硬件負載均衡器作為獨立設備工作並且非常昂貴。 儘管如此,它們仍具有性能優勢,並且能夠處理大量並髮用戶。 基於硬件的解決方案的配置存在問題,因為它需要額外的人力資源。 因此,即使對於有能力負擔得起的大型企業來說,它們也不是首選解決方案。 可用性可能是硬件負載平衡器的一個問題,因為在發生故障時需要額外的硬件進行故障轉移。 最後,硬件負載均衡器可能具有較高的維護/運營成本和兼容性問題,導致其靈活性較差。
-
Software load balancers: 軟件負載均衡器因其靈活性、可編程性和成本效益而變得越來越受歡迎。 軟件LB可以隨著需求的增長而很好地擴展。 對於軟件負載均衡器來說,可用性不會成為問題,因為在商用硬件上實施影子負載均衡器只需要少量的額外成本。 此外,軟件負載均衡還可以提供預測分析,幫助為未來的流量模式做好準備。
-
Cloud load balancers: 隨著雲計算領域的出現,負載均衡器即服務(LBaaS)被引入。 這是雲所有者提供負載平衡服務的地方。 根據其使用量或與雲提供商的服務級別協議(SLA)付費。 基於雲的負載均衡不一定會取代本地負載均衡設施,但它們可以在不同區域之間執行全局流量管理。 此類負載均衡器的主要優點包括易於使用、管理、計量成本、使用靈活性、審計和監控服務以改進業務決策。