服務器負載均衡方案是怎樣的?負載均衡算法有哪些?
負載均衡是屬于服務器的一種應用技術,它是建立在現有的網絡結構上面的,能夠提高網絡的可用性和靈活性,那么服務器負載均衡方案是怎樣的?負載均衡算法有哪些呢?下面新網就來談談。
HTTP 重定向當HTTP代理(如瀏覽器)向Web服務器請求某個URL后,Web 服務器可以通過HTTP響應頭信息中的Location 標記來返回一個新的URL,這意味著HTTP代理需要繼續請求這個新的URL,這便完成了自動跳轉。
DNS 負載均衡
DNS負責提供域名解析服務,當我們訪問某個站點時,實際上首先需要通過該站點域名的DNS服務器來獲取域名指向的IP地址,在這一過程中,DNS服務器完成了域名到IP地址的映射,同樣,這種映射也可以是一對多的,這時候DNS服務器便充當了負載均衡調度器(也稱均衡器)。
反向代理服務器的核心工作便是轉發 HTTP 請求,因此它工作在 HTTP 層面,也就是TCP七層結構中的應用層(第七層),所以基于反向代理的負載均衡也稱為七層負載均衡,實現它并不困難,目前幾乎所有主流的 Web 服務器都熱衷于支持基于反向代理的負載均衡。
在數據鏈路層(第二層)、網絡層(第三層)以及傳輸層(四層)都可以實現不同機制的負載均衡,但有所不同的是,這些負載均衡調度器的工作必須由Linux 內核來完成,因為我們希望網絡數據包在從內核緩沖區進入進程用戶地址空間之前,盡早地被轉發到其他實際服務器上。
現有的負載均衡算法主要分為靜態和動態兩類。靜態負載均衡算法以固定的概率分配任務,不考慮服務器的狀態信息,如輪轉算法、加權輪轉算法等;動態負載均衡算法以服務器的實時負載狀態信息來決定任務的分配,如最小連接法、加權最小連接法等。
1、輪詢法
輪詢法,就是將用戶的請求輪流分配給服務器,就像是挨個數數,輪流分配。這種算法比較簡單,他具有絕對均衡的優點,但是也正是因為絕對均衡它必須付出很大的代價,例如它無法保證分配任務的合理性,無法根據服務器承受能力來分配任務。
2、隨機法
隨機法,是隨機選擇一臺服務器來分配任務。它保證了請求的分散性達到了均衡的目的。同時它是沒有狀態的不需要維持上次的選擇狀態和均衡因子[5]。但是隨著任務量的增大,它的效果趨向輪詢后也會具有輪詢算法的部分缺點。
3、最小連接法
最小連接法,將任務分配給此時具有最小連接數的節點,因此它是動態負載均衡算法。一個節點收到一個任務后連接數就會加1,當節點故障時就將節點權值設置為0,不再給節點分配任務。
常見的軟件負載均衡技術
1、基于DNS的負載均衡
由于在DNS服務器中,可以為多個不同的地址配置相同的名字,最終查詢這個名字的客戶機將在解析這個名字時得到其中一個地址,所以這種代理方式是通過DNS服務中的隨機名字解析域名和IP來實現負載均衡。
2、反向代理負載均衡(如Apache+JK2+Tomcat這種組合)
該種代理方式與普通的代理方式不同,標準代理方式是客戶使用代理訪問多個外部Web服務器,之所以被稱為反向代理模式是因為這種代理方式是多個客戶使用它訪問內部Web服務器,而非訪問外部服務器。
3、基于NAT(Network Address Translation)的負載均衡技術(如Linux VirtualServer,簡稱LVS)
該技術通過一個地址轉換網關將每個外部連接均勻轉換為不同的內部服務器地址,因此外部網絡中的計算機就各自與自己轉換得到的地址上的服務器進行通信,從而達到負載均衡的目的。其中網絡地址轉換網關位于外部地址和內部地址之間,不僅可以實現當外部客戶機訪問轉換網關的某一外部地址時可以轉發到某一映射的內部的地址上,還可使內部地址的計算機能訪問外部網絡。
聲明:免責聲明:本文內容由互聯網用戶自發貢獻自行上傳,本網站不擁有所有權,也不承認相關法律責任。如果您發現本社區中有涉嫌抄襲的內容,請發
送郵件至:operations@xinnet.com進行舉報,并提供相關證據,一經查實,本站將立刻刪除涉嫌侵權內容。本站原創內容未經允許不得轉載,或轉載時
需注明出處:新網idc知識百科