負載均衡 計算機

2021-06-23 02:08:16 字數 2939 閱讀 5125

負載平衡(load balancing)是一種計算機網路技術,用來在多個計算機(計算機集群)、網路連線、cpu、磁碟驅動器或其他資源中分配負載,以達到最佳化資源使用、最大化吞吐率、最小化響應時間、同時避免過載的目的。

使用帶有負載平衡的多個伺服器元件,取代單一的元件,可以通過冗餘提高可靠性。負載平衡服務通常是由專用軟體和硬體來完成。

[隱藏] 

對於網際網路服務,負載平衡器通常是乙個軟體程式,這個程式偵聽乙個外部埠,網際網路使用者可以通過這個埠來訪問服務,而作為負載平衡器的軟體會將使用者的請求**給後台內網伺服器,內網伺服器將請求的響應返回給負載平衡器,負載平衡器再將響應傳送到使用者,這樣就向網際網路使用者隱藏了內網結構,阻止了使用者直接訪問後台(內網)伺服器,使得伺服器更加安全,可以阻止對核心網路棧和執行在其它埠服務的攻擊。

當所有後台伺服器出現故障時,有些負載平衡器會提供一些特殊的功能來處理這種情況。例如**請求到乙個備用的負載平衡器、顯示一條關於服務中斷的訊息等。負載平衡器使得it團隊可以顯著提高容錯能力。它可以自動提供大量的容量以處理任何應用程式流量的增加或減少。[1]

dns輪詢

當前,負載均衡器有各種各樣的工作排程演算法(用於決定將前端使用者請求傳送到哪乙個後台伺服器),最簡單的是隨機選擇和輪詢。更為高階的負載均衡器會考慮其它更多的相關因素,如後台伺服器的負載,響應時間,執行狀態,活動連線數,地理位置,處理能力,或最近分配的流量。

高效能系統通常會使用多層負載均衡。另外專用的硬體負載均衡器以及純軟體負載均衡器,包括開源的,例如apache web伺服器的mod_proxy_balancer擴充套件,nginx,varnish和pound反向**和負載均衡器。使用gearman將合適的計算任務分發給多台計算機,如此大量的任務就可以更快的完成了。

對於乙個多層次架構體系,在負載均衡器或網路分發器後面有兩種設計,術語稱之為bowties和stovepipes。stovepipe設計中,事務是從頂部分發的,然後從乙個固定通道通過一系列硬體和軟體裝置,到達最終目的地。如果使用bowties設計,在每一層中事務處理有多條路徑可供選擇。在事務處理的網路結構中可能會是stovepipes,也可以是bowties,或者根據每一層的實際需求採用雜貨構架。

負載均衡器需要處理的乙個重要問題是:如何儲存使用者會話?如果會話資訊儲存在後台伺服器,使用者接下來的請求可能會被分配到不同的後台伺服器,此時使用者會話就無法繼續。負載均衡器可以快取使用者會話,然後將使用者請求分發到不同的後台伺服器。但是這將帶來負載均衡器的負載問題。

乙個解決方案是將乙個使用者會話中的所有請求都傳送到同乙個後台伺服器。即persistence或stickiness。這個方法的不足之處在於無法容錯failover,如果後台伺服器故障,它提供的會話就會無法取得,任何依賴於它的會話都會丟失。這個問題通常與資料中心有關,儘管web service是非鏈結導向的,但是後端的資料庫先天上還是鏈結導向的。

第二個方案是依據使用者名稱,客戶端ip來分配提供服務的伺服器,也可以隨機分配。因為客戶可能是通過dhcp,nat或者web**來連線internet的,其ip位址可能經常變換,這使得這個方案的服務質量無法保障。隨機分配由負載均衡器將會話資訊儲存儲存。如果負載均衡器被替換或故障,這些資訊可會會丟失;另外(負載均衡器)負載較高的時候,為保證分配表空間不會被耗盡,超時的分配資訊必須被刪除。隨機分配方法也要求客戶會維持會話狀態,如果客戶瀏覽器禁用了cookies的功能,就會引起問題。優秀的負載均衡器會使用多種持續(會話保持)技術,以避免其中某些不可以用時引起故障。

另外乙個方案是將每一會話資訊儲存到乙個資料庫中。由於這個方案會增加資料庫的負載,所以這個方案對效能的提高並不好。資料庫最好是用來儲存會話時間比較長的會話資料。為了避免資料庫出現單點故障,並且提高其擴充套件性,資料庫通常會複製到多台伺服器上,通過負載均衡器來分發請求到資料庫伺服器上。微軟

asp.net中的狀態伺服器技術就是乙個典型的會話資料庫的例子。集群中的所有伺服器都將它們的會話資訊儲存到狀態伺服器上,同時它們可以向狀態伺服器查詢會話資料。

幸運的是有一種更有效的方法,通常客戶瀏覽器可以儲存使用者的每個會話資訊。例如使用瀏覽器cookie,對資料加密並加上乙個時間戳就可以保證安全了;url重寫。將會話資訊儲存在客戶端通常是首選方案,因為這樣負載均衡器就可以靈活的選擇後台伺服器來處理使用者請求。然而這種方法不適應於一些較複雜的電子商務,因為電子商務中會話資料較大,而且需要伺服器需要經常重新處理會話資訊;與此同時url重寫由於使用者可以改變會話流資料而存在安全問題;加密客戶端cookies也一直存在著安全方面的爭議,除非所有的會話都通過https,但是https很容易遭到中間人攻擊。

不論是軟體負載均衡器,還是硬體負載均衡器都有一系列的特性:

負載均衡對通訊鏈路的冗餘是非常有用的。例如,一家公司可能有多條網際網路接入線路以保證某一條故障時仍可以正常接入網際網路。

故障轉移的架構意味著一條連線正常使用,另外一條連線作為備用,當第一條出現故障時才會被啟用。

使用負載均衡器,兩條(多條)連線可以都投入使用。有乙個裝置或者程式實時監控著所有連線的連通性,並且對正在傳送的包進行選路。同時使用多條連線可以增加頻寬。

許多電信公司在其內部網路或連線到外部網路(其它電信網路)都有多條線路可以使用。為避免某條鏈路出現網路堵塞,最小化連線其它網路的費用或者提高網路的可靠性,它們使用負載均衡將流量從一條鏈路轉移到另一條鏈路。

更多資訊請檢視

路由負載均衡的另乙個用途是監控網路活動。負載均衡器能用於將巨大的網路流量分割為幾個子流並使用網路分析器,每個都讀取原始資料的一部分。這對於監視10gbe, stm64高速網路非常有用,在這些網路上由於資料量太大進行複雜的資料處理幾乎是不可能的。

負載均衡經常被用於實現故障轉移-當乙個或多個元件出現故障時能持續提供服務這些元件都在持續監控(例如:web伺服器通過請求乙個已知頁面來監控是否正常工作)中,當乙個元件沒有響應,負載均衡器就會發現並不再向其傳送資料。同樣當乙個元件重新上線,負載均衡器會重新開始向其傳送資料。為了能夠如前所述正常工作,負載均衡體系中至少要有乙個冗餘服務。採用一用一備方案(乙個元件提供服務,乙個備用,當主元件故障時備用元件將接管繼續提供服務)比故障轉移方案更加經濟,靈活。有些型別的raid系統使用的熱備份功能跟這是類似的作用

負載均衡計算公式

1.設計 初期 假設 有6w個動態內容處於頻繁訪問的狀態,通過cache control將它的反向 伺服器上的快取有效期都設定成60秒,這樣後端伺服器必須承受最多每秒處理1000個動態內容的工作量,如果這些動態內容都進行完整的計算 例如訪問資料庫 那麼後端壓力很大,我們可以設定快取有效期延長到300...

計算機 計算機基礎整理

大學四年浪費的代價。半夜整理東西 cpu 其功能主要是解釋計算機指令以及處理計算機軟體中的資料。cpu由運算器 控制器和暫存器及實現它們之間聯絡的資料 控制及狀態的匯流排構成。差不多所有的cpu的運作原理可分為四個階段 提取 fetch 解碼 decode 執行 execute 和寫回 writeb...

(計算機視覺)計算機視覺基礎

opencv cximage cimg freeimage opencv中vc庫的版本與visual studio版本的對應關係 vc8 2005 vc9 2008 vc10 2010 vc11 2012 vc12 2013 vc14 2015 vc15 2017 visual studio中的輔助...