無(wú)論您處于哪種情況,都不需要平衡負載嗎?保持平衡是一個(gè)適用于我們所做的幾乎所有事情的概念,無(wú)論我們是否意識到這一點(diǎn)。以平衡為例,很多職場(chǎng)文化都關(guān)注平衡的概念。對于這個(gè)討論,我指的是一個(gè)人的職業(yè)和個(gè)人生活之間的和諧。如果職業(yè)和個(gè)人生活不平衡,那么其中一件事就應該受到阻礙。
同樣,平衡在服務(wù)器管理或虛擬主機. 當您托管網(wǎng)站或處理服務(wù)器時(shí),平衡確實(shí)是必不可少的?!柏撦d平衡”這個(gè)詞近來(lái)有傳言,但很少有人真正理解它的含義或它為何如此重要。
服務(wù)器方面的負載平衡/專(zhuān)用服務(wù)器
負載均衡是在多個(gè)物理服務(wù)器之間智能分配流量以最大化資源利用率的過(guò)程。換句話(huà)說(shuō),在兩臺或多臺計算機/服務(wù)器之間共享計算工作負載的過(guò)程就是負載平衡。這基本上可以最大限度地減少每臺服務(wù)器上的負載并提高其效率,從而實(shí)現更快的性能和更低的延遲。大多數 Internet 應用程序都需要負載平衡才能準確工作。
負載平衡如何工作?
負載均衡器是處理負載均衡的工具或程序。負載平衡器由硬件或軟件組成?;谲浖呢撦d均衡器可以在服務(wù)器、虛擬機或云中運行,而硬件負載均衡器需要安裝專(zhuān)門(mén)的負載均衡設備。負載平衡是內容交付網(wǎng)絡(luò ) (CDN) 的常見(jiàn)功能。
硬件與軟件負載均衡器
以下是基于硬件的負載均衡器的工作原理:
- 它們通常是高性能設備,可以安全地處理來(lái)自各種來(lái)源的數千兆位流量。
- 這些設備中包含內置虛擬化功能,允許將多個(gè)虛擬負載平衡器實(shí)例整合到同一硬件上。
- 硬件負載均衡器支持更靈活的多租戶(hù)設計和完整的租戶(hù)隔離。
以下是基于軟件的負載均衡器的工作原理:
- 可以完全替代負載平衡硬件,同時(shí)保持類(lèi)似的功能和靈活性。
- 它們可以在流行的虛擬機管理程序、容器中或作為 Linux 進(jìn)程運行裸機服務(wù)器以最小的開(kāi)銷(xiāo)。它們可以根據用例和技術(shù)需求進(jìn)行高度定制。
- 幫助節省硬件空間和金錢(qián)。
負載均衡器將每個(gè)來(lái)自用戶(hù)的請求分配給一個(gè)精確的服務(wù)器,并且這個(gè)過(guò)程針對每個(gè)請求重復。負載均衡器使用多種算法來(lái)確定哪個(gè)服務(wù)器應該處理每個(gè)請求。
負載均衡算法分為兩部分:
- 靜態(tài)負載均衡算法
- 動(dòng)態(tài)負載均衡算法
靜態(tài)負載均衡算法
靜態(tài)負載平衡技術(shù)在不考慮系統當前狀態(tài)的情況下分配工作負載。靜態(tài)負載均衡器無(wú)法知道哪些服務(wù)器運行緩慢,哪些服務(wù)器未得到充分利用。相反,它根據預定義的時(shí)間表分配職責。盡管靜態(tài)負載平衡很容易設置,但它可能會(huì )導致效率低下。
動(dòng)態(tài)負載均衡算法
動(dòng)態(tài)負載平衡方法會(huì )考慮每臺服務(wù)器的當前可用性、工作負載和運行狀況。這些算法將流量從過(guò)度擁擠或性能不佳的服務(wù)器重定向到未充分利用的服務(wù)器,從而確保公平和高效的分配。另一方面,動(dòng)態(tài)負載平衡設置起來(lái)更復雜。服務(wù)器可用性由多種因素決定,包括每臺服務(wù)器的運行狀況和整體容量、分布式任務(wù)的數量等。動(dòng)態(tài)負載均衡算法有很多種,如最小連接、加權最小連接、基于資源等。
一些負載均衡算法
循環(huán)法:循環(huán)法是最簡(jiǎn)單的平衡技術(shù)。請求被一一轉發(fā)到架構中的每臺服務(wù)器,確保流量公平分布。當算法遍歷整個(gè)實(shí)例/服務(wù)器列表時(shí),它會(huì )返回列表頂部并重新開(kāi)始。
最少連接方法:最少連接技術(shù)是一種默認的負載平衡機制,它將傳入請求發(fā)送到具有最少活動(dòng)連接的服務(wù)器。這是默認的負載平衡方法,因為它在大多數情況下提供了最佳性能。最少連接技術(shù)適用于服務(wù)器參與時(shí)間(連接處于活動(dòng)狀態(tài)的時(shí)間長(cháng)度)變化的情況。
加權最小連接:加權最小連接方法也可以通過(guò)循環(huán)方法(稱(chēng)為加權循環(huán)方法)訪(fǎng)問(wèn),允許每個(gè)服務(wù)器被授予優(yōu)先級狀態(tài)。
源 IP 哈希:當負載均衡器使用源 IP 哈希時(shí),來(lái)自單個(gè) IP 地址的每個(gè)請求都會(huì )被賦予一個(gè)密鑰,然后將其分配給服務(wù)器。源 IP 哈希不僅可以在基礎架構中公平地分配流量,還可以確保服務(wù)器的一致性。一旦發(fā)布,唯一的 IP 將始終連接到同一臺服務(wù)器。
網(wǎng)址哈希:URL 哈希技術(shù)根據請求的 IP 而不是到達的 IP 分配密鑰。
最短響應時(shí)間方法:最短響應時(shí)間技術(shù)與最少連接方法一樣,根據服務(wù)器上的連接數以及最低平均響應時(shí)間分配請求,通過(guò)集成兩個(gè)級別的平衡來(lái)降低負載。
帶寬和數據包方法:虛擬服務(wù)器平衡的帶寬和數據包方法根據哪個(gè)服務(wù)器處理最少的流量(帶寬)將請求分配給負載平衡器。
自定義加載:自定義加載方法需要使用負載監視器。它根據各種服務(wù)器特征(包括 CPU 利用率、內存和響應時(shí)間等)分配請求。
最少待處理請求 (LPR):HTTP/S 請求被監控并使用最少掛起請求技術(shù)傳送到最可用的服務(wù)器。LPR 技術(shù)可以同時(shí)管理大量請求,同時(shí)跟蹤每個(gè)服務(wù)器的可用性。
負載平衡的使用
Web 應用程序經(jīng)常使用負載平衡。負載均衡器(軟件和基于云的輔助工具)在托管應用程序的服務(wù)器之間平均分配 Internet 流量。全局服務(wù)器負載平衡 (GSLB) 是云負載平衡系統的一項功能,允許它們在全球范圍內平衡服務(wù)器之間的 Internet 流量負載。
負載平衡在本地網(wǎng)絡(luò )中也很普遍,例如數據中心和大型辦公綜合體。傳統上,使用諸如應用交付控制器 (ADC) 或專(zhuān)用負載平衡設備之類(lèi)的硬件設備。
服務(wù)器監控
動(dòng)態(tài)負載平衡器必須了解服務(wù)器的健康狀況,包括它們的當前狀態(tài)、性能等。服務(wù)器運行狀況監控由動(dòng)態(tài)負載平衡器定期執行。負載平衡器向運行不佳的服務(wù)器或服務(wù)器組發(fā)送的流量較少。每當一個(gè)服務(wù)器或一組服務(wù)器完全發(fā)生故障時(shí),負載均衡器會(huì )將流量重新路由到另一組服務(wù)器,這一過(guò)程稱(chēng)為“故障轉移”。
究竟什么是故障轉移?
當服務(wù)器停止工作并且負載平衡器將其常規活動(dòng)轉移到不同的服務(wù)器或一組服務(wù)器時(shí),就會(huì )發(fā)生故障轉移。服務(wù)器故障轉移對于正常運行時(shí)間至關(guān)重要:沒(méi)有它,服務(wù)器崩潰可能會(huì )導致網(wǎng)站或服務(wù)停止。故障轉移必須及時(shí)進(jìn)行,以免停機。
最后,關(guān)于負載平衡的一句話(huà)
無(wú)論您的目標是什么,如果您已經(jīng)超過(guò)了單個(gè) Web 服務(wù)器(或即將),您將從負載均衡器中受益,因為它將使您的網(wǎng)站和數據保持可用、運行和性能最佳。即使您選擇托管系統而不是自己實(shí)施它,了解您的需求、現有系統以及您最終想要去哪里也可以幫助您做出更明智的業(yè)務(wù)決策。