F5/LVS/Nginx/HAProxy硬軟件級網絡負載均衡介紹

在CSDN上看見這篇博文感覺整理的很好,就把他轉過來了。這個是博主文章傳送門:傳送門

1 硬件級的負載均衡

    常見的商用硬件負載均衡器:NetScaler、F5、Radware、Array

    優點:

    1)專業團隊維護,能夠直接通過智能交換機實現,處理能力更強,而且與系統無關,負載性能強

    2)更適用於一大堆設備、大訪問量、簡單應用

    缺點:

    1)價格貴,花銷大

    2)不能及時有效掌握服務器及應用狀態,硬件負載均衡,一般都不管實際系統與應用的狀態,而只是從網絡層來判斷,所以有時候系統處理能力已經不行了,但網絡可能還未來得及反應

2 軟件級負載均衡

    優點:性價比高,基於系統與應用的負載均衡,能夠更好地根據系統與應用的狀況來分配負載,適用於規模較小的網絡服務

    缺點:負載能力受服務器本身性能的影響,性能越好,負載能力越大

3 LVS(Linux Virtual Server)

    由章文嵩博士研究的項目,使用集羣技術和Linux操作系統實現一個高性能、高可用的服務器,它具有很好的

     #可伸縮性(Scalability)

     #可靠性(Reliability)

     #可管理性(Manageability)

    IP負載均衡技術:

    1)VS/NAT:Virtual Server via Network Address Translation, 通過網絡地址轉換(Network Address Translation)將一組服務器構成一個高性能的、高可用的虛擬服務器

    2)   VS/TUN:Virtual Server via IP Tunneling, 通過IP隧道實現虛擬服務器的方法

    3)   VS/DR:Virtual Server via Direct Routing,  通過直接路由實現虛擬服務器的方法

    LVS特點:

    1)抗負載能力強、是工作在網絡4層之上僅作分發之用,沒有流量的產生,這個特點也決定了它在負載均衡軟件裏的性能最強的;
    2)配置性比較低,這是一個缺點也是一個優點,因爲沒有可太多配置的東西,所以並不需要太多接觸,大大減少了人爲出錯的機率;
    3)工作穩定,自身有完整的雙機熱備方案,如LVS+Keepalived和LVS+Heartbeat,不過我們在項目實施中用得最多的還是LVS/DR+Keepalived;
    4)無流量,保證了均衡器IO的性能不會收到大流量的影響;
    5)應用範圍比較廣,可以對所有應用做負載均衡;
    6)軟件本身不支持正則處理,不能做動靜分離,這個就比較遺憾了;其實現在許多網站在這方面都有較強的需求,這個是Nginx/HAProxy+Keepalived的優勢所在

    7)如果是網站應用比較龐大的話,實施LVS/DR+Keepalived起來就比較複雜了,特別後面有Windows Server應用的機器的話,如果實施及配置還有維護過程就比較複雜了,相對而言,Nginx/HAProxy+Keepalived就簡單多了。

4 Nginx

    Nginx(發音同 engine x)是一款輕量級的Web 服務器/反向代理服務器及電子郵件(IMAP/POP3)代理服務器,並在一個BSD-like 協議下發行。由俄羅斯的程序設計師Igor Sysoev所開發,供俄國大型的入口網站及搜索引擎Rambler(俄文:Рамблер)使用。其特點是佔有內存少,併發能力強,事實上nginx的併發能力確實在同類型的網頁服務器中表現較好

    特點:

    1)工作在網絡的7層之上,可以針對http應用做一些分流的策略,比如針對域名、目錄結構,它的正則規則比HAProxy更爲強大和靈活,這也是許多朋友喜歡它的原因之一;
    2)Nginx對網絡的依賴非常小,理論上能ping通就就能進行負載功能,這個也是它的優勢所在;
    3)Nginx安裝和配置比較簡單,測試起來比較方便;
    4)也可以承擔高的負載壓力且穩定,一般能支撐超過幾萬次的併發量;
    5)Nginx可以通過端口檢測到服務器內部的故障,比如根據服務器處理網頁返回的狀態碼、超時等等,並且會把返回錯誤的請求重新提交到另一個節點,不過其中缺點就是不支持url來檢測;
    6)Nginx僅能支持http和Email,這樣就在適用範圍上面小很多,這個它的弱勢;
    7)Nginx不僅僅是一款優秀的負載均衡器/反向代理軟件,它同時也是功能強大的Web應用服務器。LNMP現在也是非常流行的web架構,大有和以前最流行的LAMP架構分庭抗爭之勢,在高流量的環境中也有很好的效果。
    8)Nginx現在作爲Web反向加速緩存越來越成熟了,很多朋友都已在生產環境下投入生產了,而且反映效果不錯,速度比傳統的Squid服務器更快,有興趣的朋友可以考慮用其作爲反向代理加速器。

5 HAProxy

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

    

    特點:

    1)HAProxy是支持虛擬主機的
    2)能夠補充Nginx的一些缺點比如Session的保持,Cookie的引導等工作
    3)支持url檢測後端的服務器出問題的檢測會有很好的幫助。
    4)它跟LVS一樣,本身僅僅就只是一款負載均衡軟件;單純從效率上來講HAProxy更會比Nginx有更出色的負載均衡速度,在併發處理上也是優於Nginx的。
    5)HAProxy可以對MySQL讀進行負載均衡,對後端的MySQL節點進行檢測和負載均衡,不過在後端的MySQL slaves數量超過10臺時性能不如LVS,所以我向大家推薦   LVS+Keepalived。
    6)HAProxy的算法現在也越來越多了,具體有如下8種:
        ①roundrobin,表示簡單的輪詢,這個不多說,這個是負載均衡基本都具備的;
        ②static-rr,表示根據權重,建議關注;
        ③leastconn,表示最少連接者先處理,建議關注;
        ④source,表示根據請求源IP,這個跟Nginx的IP_hash機制類似,我們用其作爲解決session問題的一種方法,建議關注;
        ⑤ri,表示根據請求的URI;
        ⑥rl_param,表示根據請求的URl參數'balance url_param' requires an URL parameter name;
        ⑦hdr(name),表示根據HTTP請求頭來鎖定每一次HTTP請求;
        ⑧rdp-cookie(name),表示根據據cookie(name)來鎖定並哈希每一次TCP請求。


    


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