負(fù)載均衡原理與實踐_第1頁
負(fù)載均衡原理與實踐_第2頁
負(fù)載均衡原理與實踐_第3頁
負(fù)載均衡原理與實踐_第4頁
負(fù)載均衡原理與實踐_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、負(fù)載均衡原理與實踐2015-9-7匯報提綱集群及負(fù)載均衡概念負(fù)載均衡實現(xiàn)方式負(fù)載均衡軟件的比較分析使用Nginx實現(xiàn)負(fù)載均衡使用HAProxy實現(xiàn)負(fù)載均衡總結(jié)session共享第一部分第一部分 集群及負(fù)載均衡概念負(fù)載均衡原理與實踐集群及負(fù)載均衡概念所謂集群是指一組獨立的計算機系統(tǒng)構(gòu)成的多處理器系統(tǒng),每臺服務(wù)器都具有等價的地位,它們之間通過網(wǎng)絡(luò)實現(xiàn)進程間的通信。應(yīng)用程序可以通過網(wǎng)絡(luò)共享內(nèi)存進行消息傳送,實現(xiàn)分布式計算機。集群也是指多臺計算機共同協(xié)作運行一個應(yīng)用。什么是集群(Cluster)?負(fù)載均衡原理與實踐集群及負(fù)載均衡概念負(fù)載均衡就是集群功能其中的一種。即把負(fù)載壓力根據(jù)某種算法合理分配到集群

2、中的每一臺計算機上,以減輕主服務(wù)器的壓力,降低對主服務(wù)器的硬件和軟件要求。負(fù)載均衡是指將計算請求分配到集群中以使集群中的計算機的計算負(fù)載均衡。什么是負(fù)載均衡?負(fù)載均衡原理與實踐集群及負(fù)載均衡概念Server Too BusyServer Too BusyInternetInternet應(yīng)用背景n訪問流量快速增長訪問流量快速增長n業(yè)務(wù)量不斷提高業(yè)務(wù)量不斷提高用戶需求n希望獲得希望獲得7 72424的不的不間斷可用性及較快的間斷可用性及較快的系統(tǒng)反應(yīng)時間系統(tǒng)反應(yīng)時間Server Too BusyServer Too Busy為什么需要負(fù)載均衡 ?當(dāng)這臺服務(wù)器的處理能力達(dá)到上限時,它就會成為瓶頸。雖

3、然你是可以通過購買更強大的硬件,但總會有上限。這時,我們就需要服務(wù)器的集群。這時,就必須加個新東西:負(fù)載均衡調(diào)度服務(wù)器。負(fù)載均衡原理與實踐集群及負(fù)載均衡概念1:大量的并發(fā)訪問或數(shù)據(jù)流量分擔(dān)到多臺節(jié)點設(shè)備上分別處理,減少用戶等待響應(yīng)的時間。2:單個重負(fù)載的運算分擔(dān)到多臺節(jié)點設(shè)備上做并行處理,每個節(jié)點設(shè)備處理結(jié)束后,將結(jié)果匯總,返回給用戶,系統(tǒng)處理能力得到大幅度提高。負(fù)載均衡有兩方面的含義: 第二部分第二部分 負(fù)載均衡實現(xiàn)方式負(fù)載均衡原理與實踐負(fù)載均衡實現(xiàn)方式負(fù)載均衡實現(xiàn)的方法有幾種:1.基于DNS的集群負(fù)載均衡:在DNS中為多個地址配置同一個名字,因而查詢這個名字的客戶機將得到其中一個地址,從而

4、使得不同的客戶訪問不同的服務(wù)器,達(dá)到負(fù)載均衡的目的。2. NAT的集群負(fù)載均衡:簡單地說就是將一個IP地址轉(zhuǎn)換為另一個IP地址,一般用于未經(jīng)注冊的內(nèi)部地址與合法的、已獲注冊的Internet IP地址間進行轉(zhuǎn)換。適用于解決Internet IP地址緊張、不想讓網(wǎng)絡(luò)外部知道內(nèi)部網(wǎng)絡(luò)結(jié)構(gòu)等的場合下。3.硬件方式,通過交換機的功能或?qū)iT的負(fù)載均衡設(shè)備可以實現(xiàn)。是直接在服務(wù)器和外部網(wǎng)絡(luò)間安裝負(fù)載均衡設(shè)備,這種設(shè)備我們通常稱之為負(fù)載均衡器,由于專門的設(shè)備完成專門的任務(wù),獨立于操作系統(tǒng),整體性能得到大量提高,加上多樣化的負(fù)載均衡策略,智能化的流量管理,可達(dá)到最佳的負(fù)載均衡需求,但是價格昂貴。 4.軟件方式

5、,通過一臺負(fù)載均衡服務(wù)器進行,上面安裝軟件。它的優(yōu)點是基于特定環(huán)境,配置簡單,使用靈活,成本低廉,可以滿足一般的負(fù)載均衡需求。第三部分第三部分 負(fù)載均衡軟件的比較分析負(fù)載均衡原理與實踐負(fù)載均衡軟件的比較分析Nginx/LVS/Haproxy是是目前使用最廣泛的三種負(fù)載均衡軟件目前使用最廣泛的三種負(fù)載均衡軟件 Nginx:是一款輕量級的Web 服務(wù)器/反向代理服務(wù)器及電子郵件(IMAP/POP3)代理服務(wù)器。其特點是占有內(nèi)存少,并發(fā)能力強,中國大陸使用nginx網(wǎng)站用戶有:百度、新浪、網(wǎng)易、騰訊等。LVS:LVS是Linux Virtual Server的簡寫,意即Linux虛擬服務(wù)器虛擬服務(wù)器

6、,是一個虛擬的服務(wù)器集群系統(tǒng)。LVS集群采用IP負(fù)載均衡技術(shù)和基于內(nèi)容請求分發(fā)技術(shù)。調(diào)度器具有很好的吞吐率,將請求均衡地轉(zhuǎn)移到不同的服務(wù)器上執(zhí)行,且調(diào)度器自動屏蔽掉服務(wù)器的故障,從而將一組服務(wù)器構(gòu)成一個高性能的、高可用的虛擬服務(wù)器。Haproxy:HAProxy提供高可用性、負(fù)載均衡以及基于TCP和HTTP應(yīng)用的代理,支持虛擬主機,它是免費、快速并且可靠的一種解決方案。負(fù)載均衡原理與實踐負(fù)載均衡軟件的比較分析Nginx/LVS/HAProxy的比較的比較軟件軟件優(yōu)點優(yōu)點Nginxu 工作在網(wǎng)絡(luò)的7層之上,可以針對http應(yīng)用做一些分流的策略,比如針對域名、目錄結(jié)構(gòu),它的正則規(guī)則正則規(guī)則比HAP

7、roxy更為強大和靈活。u Nginx對網(wǎng)絡(luò)穩(wěn)定性的依賴非常小對網(wǎng)絡(luò)穩(wěn)定性的依賴非常小,理論上能ping通就就能進行負(fù)載功能,這個也是它的優(yōu)勢之一。u Nginx安裝和配置比較簡單,測試起來比較方便,它基本能把錯誤用日志打印出來。u Nginx也可作為靜態(tài)網(wǎng)頁和圖片服務(wù)器,這方面的性能也無對手。LVSu 抗負(fù)載能力強、是工作在網(wǎng)絡(luò)4層之上僅作分發(fā)之用,沒有流量的產(chǎn)生沒有流量的產(chǎn)生,這個特點也決定了它在負(fù)載均衡軟件里的性能最強的,對內(nèi)存和cpu資源消耗比較低。u 工作穩(wěn)定,因為其本身抗負(fù)載能力很強,自身有完整的雙機熱備方案,如LVS+Keepalived,不過我們在項目實施中用得最多的還是LVS

8、/DR+Keepalived。u 無流量,LVS只分發(fā)請求,而流量并不從它本身出去,這點保證了均衡器IO的性能不會收到大流量的影響。u 應(yīng)用范圍比較廣,因為LVS工作在4層,所以它幾乎可以對所有應(yīng)用做負(fù)載均衡,包括http、數(shù)據(jù)庫、在線聊天室等等。HAProxyu HAProxy也是支持虛擬主機的,可以工作在4、7層(支持多網(wǎng)段);。u HAProxy的優(yōu)點能夠補充Nginx的一些缺點,比如支持支持Session的保持,的保持,Cookie的引導(dǎo);的引導(dǎo);同時支持通過獲取指定的同時支持通過獲取指定的url來檢測后端服務(wù)器的狀態(tài)。來檢測后端服務(wù)器的狀態(tài)。u HAProxy跟LVS類似,本身就只是

9、一款負(fù)載均衡軟件;單純從效率上來講HAProxy會比Nginx有更出色的負(fù)載均衡速度,在并發(fā)處理上也是優(yōu)于Nginx的。u HAProxy支持支持TCP協(xié)議的負(fù)載均衡轉(zhuǎn)發(fā)協(xié)議的負(fù)載均衡轉(zhuǎn)發(fā),可以對MySQL讀進行負(fù)載均衡,對后端的MySQL節(jié)點進行檢測和負(fù)載均衡。u HAProxy負(fù)載均衡策略非常多負(fù)載均衡原理與實踐負(fù)載均衡軟件的比較分析Nginx/LVS/HAProxy的比較的比較軟件軟件缺點缺點Nginxu Nginx僅能支持http、https和Email協(xié)議,這樣就在適用范圍上面小些,這個是它的缺點。u 對后端服務(wù)器的健康檢查,只支持通過端口來檢測,不支持通過對后端服務(wù)器的健康檢查,只

10、支持通過端口來檢測,不支持通過url來檢測。來檢測。不支持Session的直接保持,但能通過ip_hash來解決LVSu 軟件本身不支持正則表達(dá)式處理,不能做動靜分離不支持正則表達(dá)式處理,不能做動靜分離;而現(xiàn)在許多網(wǎng)站在這方面都有較強的需求,這個是Nginx/HAProxy+Keepalived的優(yōu)勢所在。u 如果是網(wǎng)站應(yīng)用比較龐大的話,LVS/DR+Keepalived實施起來就比較復(fù)雜了,特別后面有Windows Server的機器的話,如果實施及配置還有維護過程就比較復(fù)雜了u 相反LVS對網(wǎng)絡(luò)穩(wěn)定性依賴比較大HAProxyu haproxy上擴展性很差,添加新功能很費勁,對不斷擴展的新業(yè)

11、務(wù),haproxy很難應(yīng)對u 重載配置的功能需要重啟進程,雖然也是 soft restart,但沒有 Nginx 的 reaload 更為平滑和友好第四部分第四部分 使用Nginx實現(xiàn)負(fù)載均衡負(fù)載均衡原理與實踐使用Nginx實現(xiàn)負(fù)載均衡1.Nginx下載2.Nginx安裝3.Nginx配置4.啟動Nginx詳見Nginx+Tomcat+memcache負(fù)載均衡實現(xiàn)負(fù)載均衡原理與實踐使用Nginx實現(xiàn)負(fù)載均衡n Nginx負(fù)載均衡策略1、輪詢(默認(rèn))、輪詢(默認(rèn)) 每個請求按時間順序逐一分配到不同的后端服務(wù)器,如果后端服務(wù)器down掉,能自動剔除。 2、weight 指定輪詢幾率,weight和

12、訪問比率成正比,用于后端服務(wù)器性能不均的情況。 3、ip_hash 每個請求按訪問ip的hash結(jié)果分配,這樣每個訪客固定訪問一個后端服務(wù)器,可以解決session的問題。 4、fair(第三方)(第三方) 按后端服務(wù)器的響應(yīng)時間來分配請求,響應(yīng)時間短的優(yōu)先分配。 5、url_hash(第三方)(第三方) 按訪問url的hash結(jié)果來分配請求,使每個url定向到同一個后端服務(wù)器,后端服務(wù)器為緩存時比較有效。 第五部分第五部分 使用HAProxy實現(xiàn)負(fù)載均衡負(fù)載均衡原理與實踐使用HAProxy實現(xiàn)負(fù)載均衡1. HAProxy下載2. HAProxy安裝3. HAProxy配置4.啟動HAProx

13、y詳見Linux下HAProxy負(fù)載均衡實現(xiàn)負(fù)載均衡原理與實踐使用HAProxy實現(xiàn)負(fù)載均衡n HAProxy負(fù)載均衡策略1、roundrobin表示簡單的輪詢,這個是負(fù)載均衡基本都具備的;2、static-rr表示根據(jù)權(quán)重,建議關(guān)注;3、leastconn表示最少連接者先處理,建議關(guān)注;4、source表示根據(jù)請求源IP,這個跟Nginx的IP_hash機制類似,我們用其作為解決session問題的一種方法,建議關(guān)注;5、ri表示根據(jù)請求的URI;6、 rl_param表示根據(jù)請求的URl參數(shù)balance url_param requires an URL parameter name;7

14、、hdr(name)表示根據(jù)HTTP請求頭來鎖定每一次HTTP請求;8、 rdp-cookie(name)表示根據(jù)cookie(name)來鎖定并哈希每一次TCP請求。第六部分第六部分 session共享負(fù)載均衡原理與實踐session共享Session共享方式:共享方式:1、tomcat session復(fù)制復(fù)制通過修改server.xml實現(xiàn);2、cookie 識別識別 WEB服務(wù)端發(fā)送給客戶端的cookie中插入(或添加加前綴)haproxy定義的后端的服務(wù)器COOKIE ID3、數(shù)據(jù)庫保存數(shù)據(jù)庫保存session將session寫入到數(shù)據(jù)庫的表中;4、集中式、集中式sessionRedi

15、s或memcache或terrocotta第七部分第七部分 總結(jié)總結(jié)第一階段:利用Nginx或HAProxy進行單點的負(fù)載均衡,這一階段服務(wù)器規(guī)模剛脫離開單服務(wù)器、單數(shù)據(jù)庫的模式,需要一定的負(fù)載均衡,但是仍然規(guī)模較小沒有專業(yè)的維護團隊來進行維護,也沒有需要進行大規(guī)模的網(wǎng)站部署。這樣利用Nginx或HAproxy就是第一選擇,此時這些東西上手快, 配置容易,在七層之上利用HTTP協(xié)議就可以。這時是第一選擇。第二階段:隨著網(wǎng)絡(luò)服務(wù)進一步擴大,這時單點的Nginx已經(jīng)不能滿足,這時使用LVS或者商用Array就是首要選擇,Nginx此時就作為LVS或者Array的節(jié)點來使用,具體LVS或Array的是選擇是根據(jù)公司規(guī)模和預(yù)算來選擇,Array的應(yīng)用交付功能非常強大,本人在某項目中使用過,性價比也遠(yuǎn)高于的應(yīng)用交付功能非常強大,本人在某項目中使用過,性價比也遠(yuǎn)高于F5,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論