負載均衡

三大主流軟件負載均衡器對比(LVS VS Nginx VS Haproxy)

LVS:
1、抗負載能力強。抗負載能力強、性能高,能達到F5硬件的60%;對內存和cpu資源消耗比較低
2、工作在網絡4層,通過vrrp協議轉發(僅作分發之用),具體的流量由linux內核處理,因此沒有流量的產生。
2、穩定性、可靠性好,自身有完美的熱備方案;(如:LVS+Keepalived)
3、應用範圍比較廣,可以對所有應用做負載均衡;
4、不支持正則處理,不能做動靜分離。
5、支持負載均衡算法:rr(輪循)、wrr(帶權輪循)、lc(最小連接)、wlc(權重最小連接)
6、配置 複雜,對網絡依賴比較大,穩定性很高。


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功能。

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。

三大主流軟件負載均衡器適用業務場景:

1、網站建設初期,可以選用Nigix/HAproxy作爲反向代理負載均衡(或者流量不大都可以不選用負載均衡),因爲其配置簡單,性能也能滿足一般的業務場景。如果考慮到負載均衡器是有單點問題,可以採用Nginx+Keepalived/HAproxy+Keepalived避免負載均衡器自身的單點問題。
2、網站並發達到一定程度之後,爲了提高穩定性和轉發效率,可以使用LVS、畢竟LVS比Nginx/HAproxy要更穩定,轉發效率也更高。不過維護LVS對維護人員的要求也會更高,投入成本也更大。

注:Niginx與Haproxy比較:Niginx支持七層、用戶量最大,穩定性比較可靠。Haproxy支持四層和七層,支持更多的負載均衡算法,支持session保存等。具體選型看使用場景,目前來說Haproxy由於彌補了一些Niginx的缺點用戶量也不斷在提升。


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