網(wǎng)絡(luò)應(yīng)用程序的負(fù)載平衡問題_第1頁
網(wǎng)絡(luò)應(yīng)用程序的負(fù)載平衡問題_第2頁
網(wǎng)絡(luò)應(yīng)用程序的負(fù)載平衡問題_第3頁
網(wǎng)絡(luò)應(yīng)用程序的負(fù)載平衡問題_第4頁
網(wǎng)絡(luò)應(yīng)用程序的負(fù)載平衡問題_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、網(wǎng)絡(luò)應(yīng)用程序的負(fù)載平衡問題摘要:在現(xiàn)今網(wǎng)絡(luò)時(shí)代,通過網(wǎng)絡(luò)尋找信息的需求量越來越大,在網(wǎng)絡(luò)節(jié)點(diǎn)上的服務(wù)器需要有相當(dāng)?shù)呢?fù)載能力,而且越來越多的情況下還需要通過幾臺(tái)服務(wù)器來共同完成對(duì)需要的應(yīng)答任務(wù)。介紹了一種多服務(wù)器共同負(fù)載并平衡工作的技術(shù)負(fù)載平衡。首先概要性地描述了負(fù)載平衡的原理,并按照軟件應(yīng)用的執(zhí)行過程,從軟件層次至硬件平臺(tái),自上而下的順序?qū)⒊R姷呢?fù)載平衡方法分為軟件級(jí)負(fù)載平衡、網(wǎng)絡(luò)級(jí)負(fù)載平衡、硬件級(jí)負(fù)載平衡,并簡明扼要地說明了各種負(fù)載平衡的使用范圍、實(shí)現(xiàn)代價(jià)、可擴(kuò)展性與及總體優(yōu)缺點(diǎn)。關(guān)鍵詞:負(fù)載平衡;DNSApache/Tomcat;網(wǎng)絡(luò)應(yīng)用;會(huì)話狀態(tài)管理1問題的提出網(wǎng)絡(luò)應(yīng)用建立在網(wǎng)絡(luò)服務(wù)器(

2、WebServe)上,供客戶端(WebClient)連接訪問,服務(wù)器接收到客戶端請(qǐng)求后處理業(yè)務(wù)邏輯,在此階段網(wǎng)絡(luò)應(yīng)用通常會(huì)訪問數(shù)據(jù)庫,然后組成相應(yīng)網(wǎng)絡(luò)應(yīng)答(Response)返回給客戶端。如果只架設(shè)一臺(tái)網(wǎng)絡(luò)服務(wù)器,在客戶數(shù)量較少,請(qǐng)求不繁忙的情況下系統(tǒng)能夠滿足需求,當(dāng)客戶數(shù)量驟增,單個(gè)客戶的請(qǐng)求也相應(yīng)變多時(shí),一臺(tái)服務(wù)器就不能滿足實(shí)時(shí)處理需求,就會(huì)造成系統(tǒng)速度減慢,客戶抱怨,甚至系統(tǒng)崩潰。另一方面,如果只有一臺(tái)服務(wù)器提供服務(wù),一旦該服務(wù)器癱瘓或者進(jìn)行關(guān)閉維護(hù),則整個(gè)系統(tǒng)就不能提供服務(wù)。第一個(gè)問題反映的是網(wǎng)絡(luò)應(yīng)用的可擴(kuò)展性需求,第二個(gè)問題反映的是網(wǎng)絡(luò)應(yīng)用的冗余可靠性要求。這兩個(gè)問題在當(dāng)前多媒體大容

3、量的視頻點(diǎn)播網(wǎng)站中特別值得研究。負(fù)載平衡技術(shù)的提出就能夠很好地解決網(wǎng)絡(luò)擴(kuò)展性、冗余可靠性的要求。2負(fù)載平衡的相關(guān)概念負(fù)載平衡器是由一組服務(wù)器組成的(集群)。在集群中各個(gè)計(jì)算機(jī)上同時(shí)運(yùn)行相同的網(wǎng)絡(luò)應(yīng)用程序,而對(duì)外界客戶端來說,負(fù)載平衡器提供的服務(wù)就好像是由一臺(tái)網(wǎng)絡(luò)服務(wù)器提供的一樣。而負(fù)載平衡器將來自客戶端的請(qǐng)求根據(jù)不同算法分配到集群中具體某個(gè)節(jié)點(diǎn)去,從而優(yōu)化了系統(tǒng)性能。負(fù)載平衡器使用不同的算法控制通信流量。這些算法用于以智能地分散負(fù)載,最大限度地利用群集內(nèi)的所有服務(wù)器。這些算法包括:循環(huán)法:循環(huán)算法將負(fù)載均衡地分配給集群中每臺(tái)服務(wù)器,而不考慮當(dāng)前的連接數(shù)或響應(yīng)時(shí)間。循環(huán)法適合于群集中的服務(wù)器具有

4、相同處理能力的情況。加權(quán)循環(huán)法:加權(quán)循環(huán)算法適合于每臺(tái)服務(wù)器具有不同處理能力的情況。管理員將性能權(quán)值手動(dòng)分配給每臺(tái)服務(wù)器,而且按照服務(wù)器權(quán)值自動(dòng)生成調(diào)度序列。然后,系統(tǒng)按照循環(huán)調(diào)度序列將請(qǐng)求定向到不同的服務(wù)器。最少連接:最少連接算法根據(jù)群集中哪臺(tái)服務(wù)器當(dāng)前正在處理的連接數(shù)最少,從而將請(qǐng)求發(fā)送給該服務(wù)器?;谪?fù)載:基于負(fù)載算法先判斷群集中哪臺(tái)服務(wù)器當(dāng)前的負(fù)載最低,然后將請(qǐng)求發(fā)送給該服務(wù)器。3負(fù)載平衡分類及其優(yōu)缺點(diǎn)負(fù)載平衡通??梢赃M(jìn)行以下分類:基于軟件實(shí)現(xiàn)的負(fù)載平衡這類負(fù)載平衡又可以細(xì)分為系統(tǒng)軟件級(jí)負(fù)載平衡、應(yīng)用軟件級(jí)負(fù)載平衡。(1)系統(tǒng)軟件級(jí)負(fù)載平衡。系統(tǒng)軟件級(jí)負(fù)載平衡現(xiàn)在用得最多的是微軟服務(wù)器

5、企業(yè)版操作系統(tǒng)自帶的“網(wǎng)絡(luò)載量平衡”模塊。它的算法是加權(quán)算法。這種負(fù)載平衡的優(yōu)點(diǎn)是費(fèi)用低、有可視化設(shè)置界面、設(shè)置簡單,一般默認(rèn)選項(xiàng)就能夠滿足企業(yè)級(jí)應(yīng)用的要求。它的缺點(diǎn)主要是沒有維護(hù)網(wǎng)絡(luò)應(yīng)用程序的會(huì)話狀態(tài),因此這種負(fù)載平衡方法不適用于基于HTTP/HTTPS協(xié)議開發(fā)的web應(yīng)用程序。(2)應(yīng)用軟件級(jí)的負(fù)載平衡。應(yīng)用軟件級(jí)的負(fù)載平衡既可以自行用J2EE等實(shí)現(xiàn),也可以用現(xiàn)成的web服務(wù)器(Apache配合Tomcat)來實(shí)現(xiàn)。Apache配合Tomcat服務(wù)器來處理HTTP協(xié)議請(qǐng)求是一種很好的組合。用Apache處理靜態(tài)頁面的請(qǐng)求(例如HTML、JPEG、GIF文件等內(nèi)容),用Tomcat來處理一些

6、動(dòng)態(tài)頁面的請(qǐng)求(例如JSP頁面等)。如圖1所示。圖1Apache/Tomcat組合原理圖2Apache/Tomcat組合進(jìn)行負(fù)載平衡原理另外,我們還可以配置Apache和Tomcat來進(jìn)行負(fù)載平衡。為了用Apache協(xié)同Tomcat進(jìn)行負(fù)載平衡,需要在一臺(tái)計(jì)算機(jī)或者多臺(tái)計(jì)算機(jī)上運(yùn)行多個(gè)Tomcat實(shí)例。當(dāng)然如果多個(gè)Tomcat實(shí)例運(yùn)行在同一臺(tái)計(jì)算機(jī)上,那么這些實(shí)例應(yīng)該配置在不同的端口監(jiān)聽請(qǐng)求,以免發(fā)生沖突。為了實(shí)現(xiàn)負(fù)載平衡我們要配置一個(gè)特殊的Tomcat實(shí)例來作為調(diào)度者(TomcatWorker),讓它處在Apache與其他Tomcat群組節(jié)點(diǎn)之間進(jìn)行負(fù)載平衡。說明:客戶端的請(qǐng)求通過HTTP/

7、HTTPS協(xié)議發(fā)送到最前面的ApacheWebserver,然后轉(zhuǎn)發(fā)到Tomcat負(fù)載平衡調(diào)度器上(TomcatWorker),Tomcat根據(jù)負(fù)載平衡算法將接收的請(qǐng)求分配到負(fù)載平衡群組中的各個(gè)Tomcat實(shí)例中去。具體設(shè)置方法由于篇幅限制,不再這里贅述請(qǐng)參見參考文獻(xiàn)。Apache與Tomcat組合進(jìn)行負(fù)載平衡優(yōu)點(diǎn)在于:Apache和Tomcat項(xiàng)目都是開源項(xiàng)目,大大節(jié)約了開支,而且可以根據(jù)自己的需要進(jìn)行改進(jìn)源代碼;這種方式支持基于HTTP/HTTPS協(xié)議的會(huì)話狀態(tài)管理;投入小,沒有硬件方面的投資。網(wǎng)絡(luò)級(jí)負(fù)載平衡網(wǎng)絡(luò)負(fù)載平衡主要是用DNS(DNSRoundRobin)來進(jìn)行負(fù)載平衡。域名服務(wù)器

8、數(shù)據(jù)庫維護(hù)主機(jī)名稱和相應(yīng)IP地址的對(duì)應(yīng)關(guān)系。為了用DNS進(jìn)行負(fù)載平衡,DNS服務(wù)器要為一個(gè)域名存放多個(gè)對(duì)應(yīng)的IP地址,這些IP地址就構(gòu)成了負(fù)載平衡群組,里面的每一個(gè)IP地址都對(duì)應(yīng)著相同的一個(gè)域名。在這個(gè)例子中對(duì)應(yīng)著以下一些IP地址:DNS服務(wù)器將第一個(gè)請(qǐng)求分配給第一臺(tái)機(jī)器(),第二個(gè)請(qǐng)求發(fā)給第二臺(tái)機(jī)器(),以此類推,當(dāng)?shù)谒膫€(gè)請(qǐng)求到來時(shí),DNS服務(wù)器又將其分配給第一臺(tái)機(jī)器(),從而實(shí)現(xiàn)了循環(huán)算法的負(fù)載平衡。發(fā)送到這種負(fù)載平衡器上的請(qǐng)求被平均分配到了群組中的各個(gè)Web服務(wù)器上。DNS負(fù)載平衡的優(yōu)點(diǎn):花費(fèi)較省,安裝設(shè)置方便:只需要稍微改變一下DNS的配置參數(shù)就能夠配置成這種循環(huán)負(fù)載平衡器。而且通常的

9、DNS服務(wù)器自動(dòng)就支持這種負(fù)載平衡。網(wǎng)絡(luò)應(yīng)用程序不需要任何修改。維護(hù)簡單:不需要任何網(wǎng)絡(luò)專家來進(jìn)行設(shè)置和配置系統(tǒng)。DNS循環(huán)法負(fù)載平衡的缺點(diǎn):不支持會(huì)話的管理:如果要讓這種負(fù)載平衡支持會(huì)話狀態(tài)管理的話需要一些特殊的手段,比如cookies、隱含域、URL重寫等方法以使基于HTTP的請(qǐng)求到達(dá)一個(gè)服務(wù)器后以后的請(qǐng)求就一直指向這臺(tái)服務(wù)器。可靠性不強(qiáng):假設(shè)有n個(gè)節(jié)點(diǎn)的負(fù)載平衡群組,如果有一個(gè)節(jié)點(diǎn)崩潰了,按照循環(huán)算法那么每n個(gè)請(qǐng)求中就有一個(gè)請(qǐng)求要被分配到這個(gè)死節(jié)點(diǎn)上去。硬件級(jí)負(fù)載平衡基于硬件的負(fù)載平衡的原理:這種負(fù)載平衡器對(duì)外只有一個(gè)虛擬IP地址。而不像DNS循環(huán)負(fù)載平衡那樣有多個(gè)實(shí)際IP地址供外界使用

10、。這樣就不會(huì)出現(xiàn)請(qǐng)求被分配到死節(jié)點(diǎn)上去的危險(xiǎn)。圖3DNS循環(huán)負(fù)載平衡原理圖4基于硬件的負(fù)載平衡原理當(dāng)一個(gè)請(qǐng)求到達(dá)硬件負(fù)載平衡器后,它改寫請(qǐng)求中的頭信息(heade)指向群組中的其它節(jié)點(diǎn)。如果一個(gè)節(jié)點(diǎn)退出群組,發(fā)過來的請(qǐng)求也不會(huì)指向死節(jié)點(diǎn),因?yàn)榧褐械乃形锢頇C(jī)器對(duì)外都具有一個(gè)相同的IP地址。這個(gè)地址即使在一個(gè)子節(jié)點(diǎn)崩潰后也不會(huì)改變?;谟布呢?fù)載平衡優(yōu)點(diǎn):支持會(huì)話狀態(tài)的管理:這種平衡方法讀取每個(gè)請(qǐng)求的cookies或者URL信息,根據(jù)這些信息它能夠重寫頭信息并發(fā)送這些請(qǐng)求到相應(yīng)的集群節(jié)點(diǎn)上去,所以會(huì)話狀態(tài)就保留下來了。較好的可靠性:當(dāng)平衡器檢測(cè)到某個(gè)節(jié)點(diǎn)出現(xiàn)故障后,它會(huì)將所有原來指向這個(gè)節(jié)點(diǎn)的

11、后續(xù)請(qǐng)求全部轉(zhuǎn)向其他活動(dòng)的節(jié)點(diǎn)。但是故障節(jié)點(diǎn)的會(huì)話信息將會(huì)丟失?;谟布呢?fù)載平衡缺點(diǎn):硬件路由的缺點(diǎn)主要是太貴,設(shè)置較為復(fù)雜。因?yàn)樗械恼?qǐng)求都要經(jīng)過一個(gè)硬件平衡器,這個(gè)路由器的穩(wěn)定及安全就極為重要,一旦路由器出現(xiàn)故障整個(gè)系統(tǒng)就會(huì)癱瘓,所以硬件負(fù)載平衡比較脆弱。4結(jié)束語本文描述了比較常見的負(fù)載平衡原理和它們的優(yōu)缺點(diǎn),并按照從上至下的順序?qū)⒏鞣N負(fù)載平衡分類為軟件級(jí)負(fù)載平衡、網(wǎng)絡(luò)級(jí)負(fù)載平衡、硬件級(jí)負(fù)載平衡。在實(shí)際應(yīng)用中可以將這幾類負(fù)載平衡方法混合使用以最大化優(yōu)化系統(tǒng)性能。另外,對(duì)于基于HTTPS協(xié)議的負(fù)載平衡可以采用代理服務(wù)器、硬件SSL解碼器等變通方法進(jìn)行負(fù)載平衡。參考文獻(xiàn):1范國闖,朱寰,黃濤,等.Web應(yīng)用服務(wù)器自適應(yīng)負(fù)載平衡服務(wù)J.軟件學(xué)報(bào),2003(6).2Tomcat項(xiàng)目源碼EB/OL.PASCALFORGET,+Tomcat4.x+LoadBala

溫馨提示

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

評(píng)論

0/150

提交評(píng)論