簡述四層和七層負載均衡的特點及Haproxy、nginx與LVS之間的對比

1、四層負載均衡與七層負載均衡

四層負載均衡指的是負載均衡設備通過報文中的目標IP地址和端口負載均衡算法,選擇到達目的的內部服務器,其主要工作在OSI七層模型的第四層(傳輸層)。四層負載均衡對數(shù)據包只是起一個數(shù)據轉發(fā)的作用,并不會干預客戶端與服務器之間應用層的通信(如:三次握手等)。在某些部署情況下,為保證服務器回包可以正確返回給負載均衡設備,在轉發(fā)報文的同時可能還會對報文原來的源地址進行修改。

七層負載均衡,也被稱為“內容交換”,指的是負載均衡設備通過報文中的應用層信息(URL、HTTP頭部等信息)和負載均衡算法,選擇到達目的的內部服務器。七層負載均衡可以“智能化”地篩選報文中 應用層信息,然后根據不同的信息進行特定的負載均衡調度。這種方式提升了應用系統(tǒng)在網絡層上的靈活性,另外也在一定程度上提升了后端系統(tǒng)的安全性。因為像網絡常見的DoS攻擊,這些攻擊在七層負載均衡的環(huán)境下通常都在負載均衡設備上就截止了,不會影響到后臺服務器的正常運行。

2、HAproxy、nginx與Lvs的對比

目前網絡中常見的負載均衡主要分為硬件負載均衡和軟件負載均衡。硬件負載均衡比較知名的產品有F5 Big-IP、Cirtix Netscaler等等。而軟件負載均衡就有著眾多的開源項目,常見的有Haproxy、nginx、lvs等。

Lvs的優(yōu)缺為:

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

Nginx的優(yōu)缺為:

1、工作在網絡的7層之上,可以針對http應用做一些分流的策略,比如針對域名、目錄結構;
2、Nginx對網絡的依賴比較小,理論上能ping通就就能進行負載功能;
3、Nginx安裝和配置比較簡單,測試起來比較方便;
4、可以承擔高的負載壓力且穩(wěn)定,一般能支撐超過1萬次的并發(fā);
5、對后端服務器的健康檢查,只支持通過端口來檢測,不支持通過url來檢測。
6、Nginx對請求的異步處理可以幫助節(jié)點服務器減輕負載;
7、Nginx僅能支持http、https和Email協(xié)議,這樣就在適用范圍較小。
8、不支持Session的直接保持,但能通過ip_hash來解決。、對Big request header的支持不是很好,
9、支持負載均衡算法:Round-robin(輪循)、Weight-round-robin(帶權輪循)、Ip-hash(Ip哈希)
10、Nginx還能做Web服務器即Cache功能

HAProxy的優(yōu)缺為:

1、支持兩種代理模式:TCP(四層)和HTTP(七層),支持虛擬主機;
2、能夠補充Nginx的一些缺點比如Session的保持,Cookie的引導等工作
3、支持url檢測后端的服務器出問題的檢測會有很好的幫助。
4、更多的負載均衡策略比如:動態(tài)加權輪循(Dynamic Round Robin),加權源地址哈希(Weighted Source Hash),加權URL哈希和加權參數(shù)哈希(Weighted Parameter Hash)。
5、單純從效率上來講HAProxy更會比Nginx有更出色的負載均衡速度。
6、HAProxy可以對Mysql進行負載均衡,對后端的DB節(jié)點進行檢測和負載均衡。
9、支持負載均衡算法:Round-robin(輪循)、Weight-round-robin(帶權輪循)、source(原地址保持)、RI(請求URL)、rdp-cookie(根據cookie)
10、不能做Web服務器即Cache。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容