閱讀目錄(Content)
1 LVS負載均衡的特色
2 Ngnix負載均衡的特色
3 HAProxy負載均衡的特色
4 適用業務場景
5 須要注意的是
6 衡量負載均衡器好壞的幾個重要因素
開源軟件負載均衡器
1 LVS負載均衡的特色
1) 抗負載能力強。抗負載能力強、性能高,能達到F5硬件的60%;對內存和cpu資源消耗比較低
2) 工做在網絡4層,經過vrrp協議轉發(僅做分發之用),具體的流量由linux內核處理,所以沒有流量的產生。
3) 穩定性、可靠性好,自身有完美的熱備方案;(如:LVS+Keepalived)
4) 應用範圍比較廣,能夠對全部應用作負載均衡;
5) 不支持正則處理,不能作動靜分離。
6) 支持負載均衡算法:rr(輪循)、wrr(帶權輪循)、lc(最小鏈接)、wlc(權重最小鏈接)
7) 配置 複雜,對網絡依賴比較大,穩定性很高。
回到頂部(go to top)
2 Ngnix負載均衡的特色
1) 工做在網絡的7層之上,能夠針對http應用作一些分流的策略,好比針對域名、目錄結構;
2) Nginx對網絡的依賴比較小,理論上能ping通就就能進行負載功能;
3) Nginx安裝和配置比較簡單,測試起來比較方便;
4) 也能夠承擔高的負載壓力且穩定,通常能支撐超過1萬次的併發;
5) 對後端服務器的健康檢查,只支持經過端口來檢測,不支持經過url來檢測。
6) Nginx對請求的異步處理能夠幫助節點服務器減輕負載;
7) Nginx僅能支持http、https和Email協議,這樣就在適用範圍較小。
8) 不支持Session的直接保持,但能經過ip_hash來解決。、對Big request header的支持不是很好,
9) 支持負載均衡算法:Round-robin(輪循)、Weight-round-robin(帶權輪循)、Ip-hash(Ip哈希)
10) Nginx還能作Web服務器即Cache功能。
回到頂部(go to top)
3 HAProxy負載均衡的特色
1) 支持兩種代理模式:TCP(四層)和HTTP(七層),支持虛擬主機;
2) 可以補充Nginx的一些缺點好比Session的保持,Cookie的引導等工做
3) 支持url檢測後端的服務器出問題的檢測會有很好的幫助。
4) 更多負載均衡策略好比:動態加權輪循(Dynamic Round Robin),加權源地址哈希(Weighted Source Hash),加權URL哈希和加權參數哈希(Weighted Parameter Hash)已經實現
5) 單純從效率上來說HAProxy更會比Nginx有更出色的負載均衡速度。
6) HAProxy能夠對Mysql進行負載均衡,對後端的DB節點進行檢測和負載均衡。
9) 支持負載均衡算法:Round-robin(輪循)、Weight-round-robin(帶權輪循)、source(原地址保持)、RI(請求URL)、rdp-cookie(根據cookie)
10) 不能作Web服務器即Cache。
回到頂部(go to top)
4 適用業務場景
1) 網站建設初期,能夠選用Nigix/HAproxy做爲反向代理負載均衡(或者流量不大均可以不選用負載均衡),由於其配置簡單,性能也能知足通常的業務場景。若是考慮到負載均衡器是有單點問題,能夠採用Nginx+Keepalived/HAproxy+Keepalived避免負載均衡器自身的單點問題。
2) 網站併發達到必定程度以後,爲了提升穩定性和轉發效率,可使用LVS、畢竟LVS比Nginx/HAproxy要更穩定,轉發效率也更高。不過維護LVS對維護人員的要求也會更高,投入成本也更大。
回到頂部(go to top)
5 須要注意的是
Niginx與Haproxy比較: Niginx支持七層、用戶量最大,穩定性比較可靠。Haproxy支持四層和七層,支持更多的負載均衡算法,支持session保存等。具體選型看使用場景,目前來講Haproxy因爲彌補了一些Niginx的缺點導致其用戶量也不斷在提高。
回到頂部(go to top)
6 衡量負載均衡器好壞的幾個重要因素
1) 會話率 :單位時間內的處理的請求數
2) 會話併發能力:併發處理能力
3) 數據率:處理數據能力
通過官方測試統計,haproxy 單位時間處理的最大請求數爲20000個,能夠同時維護40000-50000個併發鏈接,最大數據處理能力爲10Gbps。綜合上述,haproxy是性能優越的負載均衡、反向代理服務器。linux