負載均衡以及集羣介紹

1、集羣是什麼?

1 集羣(cluster)技術是一種較新的技術,通過集羣技術,可以在付出較低成本的情況下獲得在性能、可靠性、靈活性方面的相對較高的收益,其任務調度則是集羣系統中的核心技術。

2 集羣組成後,可以利用多個計算機和組合進行海量請求處理(負載均衡),從而獲得很高的處理效率,也可以用多個計算機做備份(高可用),使得任何一個機器壞了整個系統還是能正常運行。

2、負載均衡集羣技術

① 負載均衡(Load Balance):負載均衡集羣爲企業需求提供了可解決容量問題的有效方案。負載均衡集羣使負載可以在計算機集羣中儘可能平均地分攤處理。

② 負載通常包括應用程序處理負載和網絡流量負載,每個節點都可以承擔一定的處理負載,並且可以實現處理負載在節點之間的動態分配,以實現負載均衡。

3、負載均衡集羣技術的實現

負載均衡(Load Balance)

負載均衡技術類型:基於 4 層負載均衡技術和基於 7 層負載均衡技術

負載均衡實現方式:硬件負載均衡設備或者軟件負載均衡

硬件負載均衡產品:F5 、深信服 、Radware

軟件負載均衡產品: LVS(Linux Virtual Server)、 Haproxy、Nginx、Ats(apache traffic server)

4、實現效果如圖

在這裏插入圖片描述

5、負載均衡分類

負載均衡根據所採用的設備對象(軟/硬件負載均衡),應用的OSI網絡層次(網絡層次上的負載均衡),及應用的地理結構(本地/全局負載均衡)等來分類。下面着重介紹的是根據應用的 OSI 網絡層次來分類的負載均衡類型。
負載均衡可以大概分爲以下幾類:

  • 二層負載均衡(mac)

    一般是用虛擬mac地址方式,外部對虛擬MAC地址請求,負載均衡接收後分配後端實際的MAC地址響應。

  • 三層負載均衡(ip)

    一般採用虛擬IP地址方式,外部對虛擬的ip地址請求,負載均衡接收後分配後端實際的IP地址響應。

  • 四層負載均衡(tcp)

    在三層負載均衡的基礎上,用ip+port接收請求,再轉發到對應的機器。

  • 七層負載均衡(http)

    根據虛擬的url或IP,主機名接收請求,再轉向相應的處理服務器。

在實際應用中,比較常見的就是四層負載及七層負載。這裏也重點說下這兩種負載。

6、四層負載均衡(基於IP+端口的負載均衡)

所謂四層負載均衡,也就是主要通過報文中的目標地址和端口,再加上負載均衡設備設置的服務器選擇方式,決定最終選擇的內部服務器。
layer4

  1. 在三層負載均衡的基礎上,通過發佈三層的IP地址(VIP),然後加四層的端口號,來決定哪些流量需要做負載均衡,對需要處理的流量進行NAT處理,轉發至後臺服務器,並記錄下這個TCP或者UDP的流量是由哪臺服務器處理的,後續這個連接的所有流量都同樣轉發到同一臺服務器處理。

  2. 以常見的TCP爲例,負載均衡設備在接收到第一個來自客戶端的SYN 請求時,即通過上述方式選擇一個最佳的服務器,並對報文中目標IP地址進行修改(改爲後端服務器IP),直接轉發給該服務器。TCP的連接建立,即三次握手是客戶端和服務器直接建立的,負載均衡設備只是起到一個轉發動作。在某些部署情況下,爲保證服務器回包可以正確返回給負載均衡設備,在轉發報文的同時可能還會對報文原來的源地址進行修改。

  3. 對應的負載均衡器要處理的流量進行NAT處理,轉發至後臺服務器,並記錄下這個TCP或者UDP的流量是由哪臺服務器處理的,後續這個連接的所有流量都同樣轉發到同一臺服務器處理。

  4. 實現四層負載均衡的軟件有:

  • F5:硬件負載均衡器,功能很好,但是成本很高。
  • lvs:重量級的四層負載軟件
  • haproxy:模擬四層轉發,較靈活

7、七層的負載均衡(基於虛擬的URL或主機IP的負載均衡)

所謂七層負載均衡,也稱爲“內容交換”,也就是主要通過報文中的真正有意義的應用層內容,再加上負載均衡設備設置的服務器選擇方式,決定最終選擇的內部服務器。

layer7

  1. 在四層負載均衡的基礎上(沒有四層是絕對不可能有七層的),再考慮應用層的特徵,比如同一個Web服務器的負載均衡,除了根據IP加80端口辨別是否需要處理的流量,還可根據七層的URL、瀏覽器類別、語言來決定是否要進行負載均衡。
  2. 負載均衡設備如果要根據真正的應用層內容再選擇服務器,只能先代理最終的服務器和客戶端建立連接(三次握手)後,纔可能接受到客戶端發送的真正應用層內容的報文,然後再根據該報文中的特定字段,再加上負載均衡設備設置的服務器選擇方式,決定最終選擇的內部服務器。負載均衡設備在這種情況下,更類似於一個代理服務器。負載均衡和前端的客戶端以及後端的服務器會分別建立TCP連接。所以從這個技術原理上來看,七層負載均衡明顯的對負載均衡設備的要求更高,處理七層的能力也必然會低於四層模式的部署方式。
  3. 對應的負載均衡器除了支持四層負載均衡以外,還有分析應用層的信息,如HTTP協議URI等信息,實現七層負載均衡。此種負載均衡器能理解應用協議。
  4. 實現七層負載均衡的軟件有:
    • haproxy:天生負載均衡技能,全面支持七層代理,會話保持,標記,路徑轉移;
    • nginx:只在http協議和mail協議上功能比較好,性能與haproxy差不多;
    • apache:功能較差
    • Mysql proxy:功能尚可。

8、四層負載與七層負載的區別

在這裏插入圖片描述
總結:從上面的對比看來四層負載與七層負載最大的區別就是效率與功能的區別。四層負載架構設計比較簡單,無需解析具體的消息內容,在網絡吞吐量及處理能力上會相對比較高,而七層負載均衡的優勢則體現在功能多,控制靈活強大。在具體業務架構設計時,使用七層負載或者四層負載還得根據具體的情況綜合考慮。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章