常用負載均衡技術

基於四層交換技術的負載均衡:
   基於四層交換技術的負載均衡 ---- 這種技術是在第四層交換機上設置Web服務的虛擬IP地址,這個虛擬IP地址是DNS服務器中解析到的Web服務器的IP地址,對客戶端是可見的。
    當客戶訪問此Web應用時,客戶端的Http請求會先被第四層交換機接收到,它將基於第四層交換技術實時檢測後臺Web服務器的負載,根據設定的算法進行快速交換。常見的算法有輪詢、加權、最少連接、隨機和響應時間等。


基於七層交換技術的負載均衡:
   基於七層交換技術的負載均衡 ---- 基於第七層交換的負載均衡技術主要用於實現Web應用的負載平衡和服務質量保證。
   它與第四層交換機比較起來有許多優勢:
   第七層交換機不僅能檢查 TCP/IP數據包的TCP和UDP端口號,從而轉發給後臺的某臺服務器來處理,而且能從會話層以上來分析Http請求的URL,根據URL的不同將不同的Http請求交給不同的服務器來處理(可以具體到某一類文件,直至某一個文件),甚至同一個URL請求可以讓多個服務器來響應以分擔負載(當客戶訪問某一個URL,發起Http請求時,它實際上要與服務器建立多個會話連接,得到多個對象,例如.txt/.gif/.jpg文檔,當這些對象都下載到本地後,才組成一個完整的頁面)。


DNS負載均衡:
   DNS負載均衡技術是最早的負載均衡解決方案,它是通過DNS服務中的隨機名字解析來實現的,在DNS服務器中,可以爲多個不同的地址配置同一個名字,而最終查詢這個名字的客戶機將在解析這個名字時得到其中的一個地址。因此,對於同一個名字,不同的客戶機會得到不同的地址,它們也就訪問不同地址上的Web 服務器,從而達到負載均衡的目的。
    這種技術的優點是,實現簡單、實施容易、成本低、適用於大多數TCP/IP應用;但是,其缺點也非常明顯,
   首先這種方案不是真正意義上的負載均衡,DNS 服務器將Http請求平均地分配到後臺的Web服務器上,而不考慮每個Web服務器當前的負載情況;如果後臺的Web服務器的配置和處理能力不同,最慢的 Web服務器將成爲系統的瓶頸,處理能力強的服務器不能充分發揮作用;
   其次未考慮容錯,如果後臺的某臺Web服務器出現故障,DNS服務器仍然會把DNS 請求分配到這臺故障服務器上,導致不能響應客戶端。
   最後一點是致命的,有可能造成相當一部分客戶不能享受Web服務,並且由於DNS緩存的原因,所造成的後果要持續相當長一段時間(一般DNS的刷新週期約爲幾十分鐘甚至更長)。


反向代理負載均衡:
   使用代理服務器可以將請求轉發給內部的Web服務器。比如apache,nginx,squid等服務器均支持反向代理。
    但是,對於連接請求數量非常大的時候,代理服務器的負載也會非常之大,在最後反向代理服務器會成爲服務的瓶頸。


F5:
   F5 BIG-IP LTM 的官方名稱叫做本地流量管理器,可以做4-7層負載均衡,具有負載均衡、應用交換、會話交換、狀態監控、智能網絡地址轉換、通用持續性、響應錯誤處理、IPv6網關、高級路由、智能端口鏡像、SSL加速、智能HTTP壓縮、TCP優化、第7層速率整形、內容緩衝、內容轉換、連接加速、高速緩存、Cookie加密、選擇性內容加密、應用攻擊過濾、拒絕服務(DoS)攻擊和SYN Flood保護、防火牆---包過濾、包消毒等功能。
   F5 BIG-IP用作HTTP負載均衡器的主要功能:  
   ① F5 BIG-IP提供12種靈活的算法將所有流量均衡的分配到各個服務器,而面對用戶,只是一臺虛擬服務器。  
   ② F5 BIG-IP可以確認應用程序能否對請求返回對應的數據。假如F5 BIG-IP後面的某一臺服務器發生服務停止、死機等故障,F5會檢查出來並將該服務器標識爲宕機,從而不將用戶的訪問請求傳送到該臺發生故障的服務器上。這樣,只要其它的服務器正常,用戶的訪問就不會受到影響。宕機一旦修復,F5 BIG-IP就會自動查證應用已能對客戶請求作出正確響應並恢復向該服務器傳送。
   ③ F5 BIG-IP具有動態Session的會話保持功能。
   ④ F5 BIG-IP的iRules功能可以做HTTP內容過濾,根據不同的域名、URL,將訪問請求傳送到不同的服務器。


LVS:
   LVS是Linux Virtual Server的簡寫,意即Linux虛擬服務器,是一個虛擬的服務器集羣系統。
   本項目在1998年5月由章文嵩博士成立,是中國國內最早出現的自由軟件項目之一。目前有三種IP負載均衡技術(VS/NAT、VS/TUN和VS/DR);
   支持十種調度算法(rrr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq)。
   三種負載均衡技術介紹如下:
1.Virtual Server via Network Address Translation(VS/NAT)
   通過網絡地址轉換,調度器重寫請求報文的目標地址,根據預設的調度算法,將請求分派給後端的真實服務器;真實服務器的響應報文通過調度器時,報文的源地址被重寫,再返回給客戶,完成整個負載調度過程。
2.Virtual Server via IP Tunneling(VS/TUN)
   採用NAT技術時,由於請求和響應報文都必須經過調度器地址重寫,當客戶請求越來越多時,調度器的處理能力將成爲瓶頸。
   爲了解決這個問題,調度器把請求報文通過IP隧道轉發至真實服務器,而真實服務器將響應直接返回給客戶,所以調度器只處理請求報文。
   由於一般網絡服務應答比請求報文大許多,採用 VS/TUN技術後,集羣系統的最大吞吐量可以提高10倍。
3.Virtual Server via Direct Routing(VS/DR)
  VS/DR通過改寫請求報文的MAC地址,將請求發送到真實服務器,而真實服務器將響應直接返回給客戶。同VS/TUN技術一樣,VS/DR技術可極大地提高集羣系統的伸縮性。
  這種方法沒有IP隧道的開銷,對集羣中的真實服務器也沒有必須支持IP隧道協議的要求,但是要求調度器與真實服務器都有一塊網卡連在同一物理網段上。

分類         VS/NAT     VS/TUN     VS/DR

服務器操作系統    任意      支持隧道       多數(支持Non-arp )

服務器網絡      私有網絡    局域網/廣域網    局域網

服務器數目(100M網絡)   10-20   100        多(100)

服務器網關      負載均衡器   自己的路由      自己的路由

效率         一般      高          最高


Haproxy:
   HAProxy提供高可用性、負載均衡 以及基於TCP和HTTP應用的代理,它是免費、快速並且可靠的一種解決方案。
   HAProxy特別適用於那些負載特大的web站點,這些站點通常又需要會話保持或七層處理。
   HAProxy運行在當前的硬件上,完全可以支持數以萬計的併發連接。並且它的運行模式使得它可以很簡單安全的整合進您當前的架構中, 同時可以保護你的web服務器不被暴露到網絡上。
  優點:支持session保持,同時支持通過獲取指定的url來檢測後端服務器的狀態。支持tcp模式的負載均衡。比如可以給mysql的從服務器集羣和郵件服務器做負載均衡。
  缺點: 不支持虛擬主機。


Nginx負載均衡
優點:性能好,可以負載超過2萬的併發。
       功能多,除了負 載均衡,還能作Web服務器,而且可以通過Geo模塊來實現流量分配。
       社區活躍,第三方補丁和模塊很多。
       支持gzip proxy。
缺點:
      不支持session保持。
       對後端realserver的健康檢查功能效果不好。而且只支持通過端口來檢測,不支持通過url來檢測。
        nginx對big request header的支持不是很好,如果client_header_buffer_size設置的比較小,就會返回400bad request頁面。
nginx負載均衡配置參考:
upstream bakend{#定義負載均衡設備的Ip及設備狀態
ip_hash;
    server 127.0.0.1:9090 down;
    server 127.0.0.1:8080 weight=2;
    server 127.0.0.1:6060;
    server 127.0.0.1:7070 backup;
}
proxy_pass http://bakend/;
每個設備的狀態可以設置爲:
1.down 表示單前的server暫時不參與負載
2.weight 默認爲1.weight越大,負載的權重就越大。
3.max_fails :允許請求失敗的次數默認爲1.當超過最大次數時,返回proxy_next_upstream 模塊定義的錯誤
4.fail_timeout:max_fails次失敗後,暫停的時間。
5.backup: 其它所有的非backup機器down或者忙的時候,請求backup機器。所以這臺機器壓力會最輕。
發佈了15 篇原創文章 · 獲贊 32 · 訪問量 34萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章