
顧名思義,是指將負載進行平衡并分攤到多個操作單元上運行,從而協同完成作業任務,是在網路結構中提供一種擴展網路設備和服務器的帶寬、增加網路的吞吐量、加強網路資料處理能力、提高網路靈活性和可用性的軟體或硬體結構,
軟體
1、基于DNS的負載均衡
由于在DNS服務器中,可以為多個不同的地址配置相同的名字,最終查詢這個名字的客戶機將在決議這個名字時得到其中一個地址,所以這種代理方式是通過DNS服務中的隨機名字決議域名和IP來實作負載均衡,
2、反向代理負載均衡
該種代理方式與普通的代理方式不同,標準代理方式是客戶使用代理訪問多個外部Web服務器,之所以被稱為反向代理模式是因為這種代理方式是多個客戶使用它訪問內部Web服務器,而非訪問外部服務器,如:Nginx,ApacheProxy,lighttpd,Cheroke等,
HAProxy與以上反向代理軟體不同,以上都是WEB服務器,而HAProxy不是,HAProxy僅僅是一款用于負載均衡的應用代理,自身不提供Web服務,但其配置簡單,擁有非常不錯的服務器健康檢查功能,還有專門的系統狀態監控頁面,當其代理的后端服務器出現故障, HAProxy會自動將該服務器摘除,故障恢復后再自動將該服務器加入,
3、基于NAT(Network Address Translation)的負載均衡技術
該技術通過一個地址轉換網關將每個外部連接均勻轉換為不同的內部服務器地址,因此外部網路中的計算機就各自與自己轉換得到的地址上的服務器進行通信,從而達到負載均衡的目的,其中網路地址轉換網關位于外部地址和內部地址之間,不僅可以實作當外部客戶機訪問轉換網關的某一外部地址時可以轉發到某一映射的內部的地址上,還可使內部地址的計算機能訪問外部網路,
硬體
NetScaler、F5、Radware、Array等商用負載均衡設備,
以下對主要的基于軟體的負載均衡做個介紹:
LVS(Linux VirtualServer)
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就簡單多了,
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服務器更快,有興趣的朋友可以考慮用其作為反向代理加速器,
HAProxy
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請求,
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/289826.html
標籤:其他
上一篇:IP地址,子網和網關配置
