版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、網(wǎng)絡應用程序的負載平衡問題摘要:在現(xiàn)今網(wǎng)絡時代,通過網(wǎng)絡尋找信息的需求量越來越大,在網(wǎng)絡節(jié)點上的服務器需要有相當?shù)呢撦d能力,而且越來越多的情況下還需要通過幾臺服務器來共同完成對需要的應答任務。介紹了一種多服務器共同負載并平衡工作的技術負載平衡。首先概要性地描述了負載平衡的原理,并按照軟件應用的執(zhí)行過程,從軟件層次至硬件平臺,自上而下的順序?qū)⒊R姷呢撦d平衡方法分為軟件級負載平衡、網(wǎng)絡級負載平衡、硬件級負載平衡,并簡明扼要地說明了各種負載平衡的使用范圍、實現(xiàn)代價、可擴展性與及總體優(yōu)缺點。關鍵詞:負載平衡;DNSApache/Tomcat;網(wǎng)絡應用;會話狀態(tài)管理1問題的提出網(wǎng)絡應用建立在網(wǎng)絡服務器(
2、WebServe)上,供客戶端(WebClient)連接訪問,服務器接收到客戶端請求后處理業(yè)務邏輯,在此階段網(wǎng)絡應用通常會訪問數(shù)據(jù)庫,然后組成相應網(wǎng)絡應答(Response)返回給客戶端。如果只架設一臺網(wǎng)絡服務器,在客戶數(shù)量較少,請求不繁忙的情況下系統(tǒng)能夠滿足需求,當客戶數(shù)量驟增,單個客戶的請求也相應變多時,一臺服務器就不能滿足實時處理需求,就會造成系統(tǒng)速度減慢,客戶抱怨,甚至系統(tǒng)崩潰。另一方面,如果只有一臺服務器提供服務,一旦該服務器癱瘓或者進行關閉維護,則整個系統(tǒng)就不能提供服務。第一個問題反映的是網(wǎng)絡應用的可擴展性需求,第二個問題反映的是網(wǎng)絡應用的冗余可靠性要求。這兩個問題在當前多媒體大容
3、量的視頻點播網(wǎng)站中特別值得研究。負載平衡技術的提出就能夠很好地解決網(wǎng)絡擴展性、冗余可靠性的要求。2負載平衡的相關概念負載平衡器是由一組服務器組成的(集群)。在集群中各個計算機上同時運行相同的網(wǎng)絡應用程序,而對外界客戶端來說,負載平衡器提供的服務就好像是由一臺網(wǎng)絡服務器提供的一樣。而負載平衡器將來自客戶端的請求根據(jù)不同算法分配到集群中具體某個節(jié)點去,從而優(yōu)化了系統(tǒng)性能。負載平衡器使用不同的算法控制通信流量。這些算法用于以智能地分散負載,最大限度地利用群集內(nèi)的所有服務器。這些算法包括:循環(huán)法:循環(huán)算法將負載均衡地分配給集群中每臺服務器,而不考慮當前的連接數(shù)或響應時間。循環(huán)法適合于群集中的服務器具有
4、相同處理能力的情況。加權循環(huán)法:加權循環(huán)算法適合于每臺服務器具有不同處理能力的情況。管理員將性能權值手動分配給每臺服務器,而且按照服務器權值自動生成調(diào)度序列。然后,系統(tǒng)按照循環(huán)調(diào)度序列將請求定向到不同的服務器。最少連接:最少連接算法根據(jù)群集中哪臺服務器當前正在處理的連接數(shù)最少,從而將請求發(fā)送給該服務器。基于負載:基于負載算法先判斷群集中哪臺服務器當前的負載最低,然后將請求發(fā)送給該服務器。3負載平衡分類及其優(yōu)缺點負載平衡通??梢赃M行以下分類:基于軟件實現(xiàn)的負載平衡這類負載平衡又可以細分為系統(tǒng)軟件級負載平衡、應用軟件級負載平衡。(1)系統(tǒng)軟件級負載平衡。系統(tǒng)軟件級負載平衡現(xiàn)在用得最多的是微軟服務器
5、企業(yè)版操作系統(tǒng)自帶的“網(wǎng)絡載量平衡”模塊。它的算法是加權算法。這種負載平衡的優(yōu)點是費用低、有可視化設置界面、設置簡單,一般默認選項就能夠滿足企業(yè)級應用的要求。它的缺點主要是沒有維護網(wǎng)絡應用程序的會話狀態(tài),因此這種負載平衡方法不適用于基于HTTP/HTTPS協(xié)議開發(fā)的web應用程序。(2)應用軟件級的負載平衡。應用軟件級的負載平衡既可以自行用J2EE等實現(xiàn),也可以用現(xiàn)成的web服務器(Apache配合Tomcat)來實現(xiàn)。Apache配合Tomcat服務器來處理HTTP協(xié)議請求是一種很好的組合。用Apache處理靜態(tài)頁面的請求(例如HTML、JPEG、GIF文件等內(nèi)容),用Tomcat來處理一些
6、動態(tài)頁面的請求(例如JSP頁面等)。如圖1所示。圖1Apache/Tomcat組合原理圖2Apache/Tomcat組合進行負載平衡原理另外,我們還可以配置Apache和Tomcat來進行負載平衡。為了用Apache協(xié)同Tomcat進行負載平衡,需要在一臺計算機或者多臺計算機上運行多個Tomcat實例。當然如果多個Tomcat實例運行在同一臺計算機上,那么這些實例應該配置在不同的端口監(jiān)聽請求,以免發(fā)生沖突。為了實現(xiàn)負載平衡我們要配置一個特殊的Tomcat實例來作為調(diào)度者(TomcatWorker),讓它處在Apache與其他Tomcat群組節(jié)點之間進行負載平衡。說明:客戶端的請求通過HTTP/
7、HTTPS協(xié)議發(fā)送到最前面的ApacheWebserver,然后轉(zhuǎn)發(fā)到Tomcat負載平衡調(diào)度器上(TomcatWorker),Tomcat根據(jù)負載平衡算法將接收的請求分配到負載平衡群組中的各個Tomcat實例中去。具體設置方法由于篇幅限制,不再這里贅述請參見參考文獻。Apache與Tomcat組合進行負載平衡優(yōu)點在于:Apache和Tomcat項目都是開源項目,大大節(jié)約了開支,而且可以根據(jù)自己的需要進行改進源代碼;這種方式支持基于HTTP/HTTPS協(xié)議的會話狀態(tài)管理;投入小,沒有硬件方面的投資。網(wǎng)絡級負載平衡網(wǎng)絡負載平衡主要是用DNS(DNSRoundRobin)來進行負載平衡。域名服務器
8、數(shù)據(jù)庫維護主機名稱和相應IP地址的對應關系。為了用DNS進行負載平衡,DNS服務器要為一個域名存放多個對應的IP地址,這些IP地址就構成了負載平衡群組,里面的每一個IP地址都對應著相同的一個域名。在這個例子中對應著以下一些IP地址:DNS服務器將第一個請求分配給第一臺機器(),第二個請求發(fā)給第二臺機器(),以此類推,當?shù)谒膫€請求到來時,DNS服務器又將其分配給第一臺機器(),從而實現(xiàn)了循環(huán)算法的負載平衡。發(fā)送到這種負載平衡器上的請求被平均分配到了群組中的各個Web服務器上。DNS負載平衡的優(yōu)點:花費較省,安裝設置方便:只需要稍微改變一下DNS的配置參數(shù)就能夠配置成這種循環(huán)負載平衡器。而且通常的
9、DNS服務器自動就支持這種負載平衡。網(wǎng)絡應用程序不需要任何修改。維護簡單:不需要任何網(wǎng)絡專家來進行設置和配置系統(tǒng)。DNS循環(huán)法負載平衡的缺點:不支持會話的管理:如果要讓這種負載平衡支持會話狀態(tài)管理的話需要一些特殊的手段,比如cookies、隱含域、URL重寫等方法以使基于HTTP的請求到達一個服務器后以后的請求就一直指向這臺服務器??煽啃圆粡姡杭僭O有n個節(jié)點的負載平衡群組,如果有一個節(jié)點崩潰了,按照循環(huán)算法那么每n個請求中就有一個請求要被分配到這個死節(jié)點上去。硬件級負載平衡基于硬件的負載平衡的原理:這種負載平衡器對外只有一個虛擬IP地址。而不像DNS循環(huán)負載平衡那樣有多個實際IP地址供外界使用
10、。這樣就不會出現(xiàn)請求被分配到死節(jié)點上去的危險。圖3DNS循環(huán)負載平衡原理圖4基于硬件的負載平衡原理當一個請求到達硬件負載平衡器后,它改寫請求中的頭信息(heade)指向群組中的其它節(jié)點。如果一個節(jié)點退出群組,發(fā)過來的請求也不會指向死節(jié)點,因為集群中的所有物理機器對外都具有一個相同的IP地址。這個地址即使在一個子節(jié)點崩潰后也不會改變?;谟布呢撦d平衡優(yōu)點:支持會話狀態(tài)的管理:這種平衡方法讀取每個請求的cookies或者URL信息,根據(jù)這些信息它能夠重寫頭信息并發(fā)送這些請求到相應的集群節(jié)點上去,所以會話狀態(tài)就保留下來了。較好的可靠性:當平衡器檢測到某個節(jié)點出現(xiàn)故障后,它會將所有原來指向這個節(jié)點的
11、后續(xù)請求全部轉(zhuǎn)向其他活動的節(jié)點。但是故障節(jié)點的會話信息將會丟失?;谟布呢撦d平衡缺點:硬件路由的缺點主要是太貴,設置較為復雜。因為所有的請求都要經(jīng)過一個硬件平衡器,這個路由器的穩(wěn)定及安全就極為重要,一旦路由器出現(xiàn)故障整個系統(tǒng)就會癱瘓,所以硬件負載平衡比較脆弱。4結(jié)束語本文描述了比較常見的負載平衡原理和它們的優(yōu)缺點,并按照從上至下的順序?qū)⒏鞣N負載平衡分類為軟件級負載平衡、網(wǎng)絡級負載平衡、硬件級負載平衡。在實際應用中可以將這幾類負載平衡方法混合使用以最大化優(yōu)化系統(tǒng)性能。另外,對于基于HTTPS協(xié)議的負載平衡可以采用代理服務器、硬件SSL解碼器等變通方法進行負載平衡。參考文獻:1范國闖,朱寰,黃濤,等.Web應用服務器自適應負載平衡服務J.軟件學報,2003(6).2Tomcat項目源碼EB/OL.PASCALFORGET,+Tomcat4.x+LoadBala
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二手電子產(chǎn)品銷售合同
- 個人工程合作合同之五:違約責任
- 中小學教師招聘合同范本
- 臨時租賃合同樣本(商業(yè)用房)
- 個人技術投資入股合同全文及注釋
- 個人向公司出租房屋合同樣本
- 個人版租賃合同模板:簡短版
- 二手房合同糾紛案例及預防措施
- A區(qū)二手房買賣合同樣本
- 個人車輛租用合同條款
- 2025年人教五四新版八年級物理上冊階段測試試卷含答案
- 2025新人教版英語七年級下單詞表(小學部分)
- 2025年春季1530安全教育記錄主題
- 礦山2025年安全工作計劃
- 給客戶的福利合同(2篇)
- 《銀行融資知識》課件
- SWITCH 勇者斗惡龍11S 金手指 版本:v1.0.3 最大金幣 最大迷你獎章 32倍經(jīng)驗 最大攻擊 所有材料
- GB/T 8014-1987鋁及鋁合金陽極氧化陽極氧化膜厚度的定義和有關測量厚度的規(guī)定
- 中醫(yī)醫(yī)院新入職護士培訓大綱
- 運動技能學習與控制課件
- 煙葉分級工新教材(高級篇)
評論
0/150
提交評論