您好,登錄后才能下訂單哦!
這篇文章主要介紹“LVS/Nginx/Haproxy的負載均衡有什么不同”,在日常操作中,相信很多人在LVS/Nginx/Haproxy的負載均衡有什么不同問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”LVS/Nginx/Haproxy的負載均衡有什么不同”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
負載均衡定義:
負載均衡是由多臺服務器以對稱的方式組成一個服務器集合,每臺服務器都 具有等價的地位,都可以單獨對外提供服務而無須其他服務器的輔助。通過某 種負載分擔技術,將外部發送來的請求均勻分配到對稱結構中的某一臺服務器 上,而接收到請求的服務器獨立地回應客戶的請求。 均衡負載能夠平均分配客戶請求到服務器列陣,籍此提供快速獲取重要數據, 解決大量并發訪問服務問題。這種 群集技術 可以用最少的投資獲得接近于大型 主機的性能。這種技術可以運用在流量擁塞時、訪問路徑過長、網民數量大增、運行這種系統負載、大大的提高了系統的可靠性、負載均衡技術解決網絡擁塞的問題、處理大量并發的訪問服務能力、提高服務器的響應速度、為用戶提供更好的訪問質量。所以說負載均衡是智能化、高性能、靈活性的技術。
設計思想:
一臺普通服務器的處理能力只能達到每秒幾萬個到幾十萬個請求,無法在一秒鐘內處理上百萬個甚至更多的請求。但若能將多臺這樣的服務器組成一個系統,并通過相關技術將所有請求平均分配給所有服務器,那么這個系統就完全擁有每秒鐘處理幾百萬個甚至更多請求的能力。這就是 負載均衡 最初的基本設計思想。
負載均衡的幾種實現技術:
http重定向: 當http代理(比如瀏覽器)向web服務器請求某個URL后,web服務器可以通過http響應頭信息中的Location標記來返回一個新的URL。這意味著HTTP代理需要繼續請求這個新的URL,完成自動跳轉。
DNS負載均衡 : 這也是最早的負載均衡技術。在DNS負載均衡服務器中可以為不同的地址用同一個名字、對于一個名字不同的客戶訪問不同的WEB服務器得到其中一個地址、從而達到負載均衡的目的。DNS負載均衡不能區分服務器的區別。
代理負載均衡 :普通用戶訪問Web服務時(其實訪問的是反向代理負載均衡器),反向代理負載均衡器,再 將請求轉發給內部多臺Web服務器,這樣講外部訪問請求根據配置策略負載到內部的多臺Web服務器,從而達到負載均衡的目的。
內部地址外部地址轉換負載均衡 : 將外部的IP地址映射到多個內部地址、地址轉換網管將每個連接均勻轉換不同的內部服務器地址、然后外部計算機就各自與自己轉換得到的地址的服務器進行連接達到負載分擔的目的。
硬件負載均衡: 例如F5、思科會有硬件負載均衡器,來處理請求負載。不過價格相對昂貴。
四層VS七層負載均衡:
① 所謂四層就是基于IP+端口的負載均衡;七層就是基于URL等應用層信息的負載均衡;同理,還有基于MAC地址的二層負載均衡和基于IP地址的三層負載均衡。 換句換說,二層負載均衡會通過一個虛擬MAC地址接收請求,然后再分配到真實的MAC地址;三層負載均衡會通過一個虛擬IP地址接收請求,然后再分配到真實的IP地址;四層通過虛擬IP+端口接收請求,然后再分配到真實的服務器;七層通過虛擬的URL或主機名接收請求,然后再分配到真實的服務器。 ② 所謂的四到七層負載均衡,就是在對后臺的服務器進行負載均衡時,依據四層的信息或七層的信息來決定怎么樣轉發流量。 比如四層的負載均衡,就是通過發布三層的IP地址(VIP),然后加四層的端口號,來決定哪些流量需要做負載均衡,對需要處理的流量進行NAT處理,轉發至后臺服務器,并記錄下這個TCP或者UDP的流量是由哪臺服務器處理的,后續這個連接的所有流量都同樣轉發到同一臺服務器處理。七層的負載均衡,就是在四層的基礎上(沒有四層是絕對不可能有七層的),再考慮應用層的特征,比如同一個Web服務器的負載均衡,除了根據VIP加80端口辨別是否需要處理的流量,還可根據七層的URL、瀏覽器類別、語言來決定是否要進行負載均衡。舉個例子,如果你的Web服務器分成兩組,一組是中文語言的,一組是英文語言的,那么七層負載均衡就可以當用戶來訪問你的域名時,自動辨別用戶語言,然后選擇對應的語言服務器組進行負載均衡處理。 ③ 負載均衡器通常稱為四層交換機或七層交換機。四層交換機主要分析IP層及TCP/UDP層,實現四層流量負載均衡。七層交換機除了支持四層負載均衡以外,還有分析應用層的信息,如HTTP協議URI或Cookie信息。 |
三大主流軟件負載均衡器對比(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、配置 復雜,對網絡依賴比較大,穩定性很高。
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)
三大主流軟件負載均衡器適用業務場景: 1、網站建設初期,可以選用Nigix/HAproxy作為反向代理負載均衡(或者流量不大都可以不選用負載均衡),因為其配置簡單,性能也能滿足一般的業務場景。如果考慮到負載均衡器是有單點問題,可以采用Nginx+Keepalived/HAproxy+Keepalived避免負載均衡器自身的單點問題。 2、網站并發達到一定程度之后,為了提高穩定性和轉發效率,可以使用LVS、畢竟LVS比Nginx/HAproxy要更穩定,轉發效率也更高。不過維護LVS對維護人員的要求也會更高,投入成本也更大。 注:Niginx與Haproxy比較:Niginx支持七層、用戶量最大,穩定性比較可靠。Haproxy支持四層和七層,支持更多的負載均衡算法,支持session保存等。具體選型看使用場景,目前來說Haproxy由于彌補了一些Niginx的缺點用戶量也不斷在提升。
|
到此,關于“LVS/Nginx/Haproxy的負載均衡有什么不同”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。