Web服務(wù)器負(fù)載均衡定義和作用及類型
一、負(fù)載均衡的定義
負(fù)載均衡是由多臺(tái)服務(wù)器以對(duì)稱的方式組成一個(gè)服務(wù)器集合,每臺(tái)服務(wù)器都具有等價(jià)的地位,都可以單獨(dú)對(duì)外提供服務(wù)而無須其他服務(wù)器的輔助。通過某種負(fù)載分擔(dān)技術(shù),將外部發(fā)送來的請(qǐng)求均勻分配到對(duì)稱結(jié)構(gòu)中的某一臺(tái)服務(wù)器上,而接收到請(qǐng)求的服務(wù)器獨(dú)立地回應(yīng)客戶的請(qǐng)求。
二、負(fù)載均衡的作用
如果你發(fā)現(xiàn)你的Web站點(diǎn)負(fù)載量非常大時(shí),應(yīng)當(dāng)考慮使用負(fù)載均衡技術(shù)來將負(fù)載平均分?jǐn)偟蕉鄠€(gè)內(nèi)部服務(wù)器上。如果有多個(gè)服務(wù)器同時(shí)執(zhí)行某一個(gè)任務(wù)時(shí),這些服務(wù)器就構(gòu)成一個(gè)集群(clustering)。使用集群技術(shù)可以用最少的投資獲得接近于大型主機(jī)的性能。
三、類型
目前比較常用的負(fù)載均衡技術(shù)主要有:
1. 基于DNS的負(fù)載均衡
通過DNS服務(wù)中的隨機(jī)名字解析來實(shí)現(xiàn)負(fù)載均衡,在DNS服務(wù)器中,可以為多個(gè)不同的地址配置同一個(gè)名字,而最終查詢這個(gè)名字的客戶機(jī)將在解析這個(gè)名字時(shí)得到其中一個(gè)地址。因此,對(duì)于同一個(gè)名字,不同的客戶機(jī)會(huì)得到不同的地址,他們也就訪問不同地址上的Web服務(wù)器,從而達(dá)到負(fù)載均衡的目的。
2. 反向代理負(fù)載均衡
使用代理服務(wù)器可以將請(qǐng)求轉(zhuǎn)發(fā)給內(nèi)部的Web服務(wù)器,讓代理服務(wù)器將請(qǐng)求均勻地轉(zhuǎn)發(fā)給多臺(tái)內(nèi)部Web服務(wù)器之一上,從而達(dá)到負(fù)載均衡的目的。這種代理方式與普通的代理方式有所不同,標(biāo)準(zhǔn)代理方式是客戶使用代理訪問多個(gè)外部Web服務(wù)器,而這種代理方式是多個(gè)客戶使用它訪問內(nèi)部Web服務(wù)器,因此也被稱為反向代理模式。Apusic負(fù)載均衡器就屬于這種類型的。
3. 基于NAT的負(fù)載均衡技術(shù)
網(wǎng)絡(luò)地址轉(zhuǎn)換為在內(nèi)部地址和外部地址之間進(jìn)行轉(zhuǎn)換,以便具備內(nèi)部地址的計(jì)算機(jī)能訪問外部網(wǎng)絡(luò),而當(dāng)外部網(wǎng)絡(luò)中的計(jì)算機(jī)訪問地址轉(zhuǎn)換網(wǎng)關(guān)擁有的某一外部地址時(shí),地址轉(zhuǎn)換網(wǎng)關(guān)能將其轉(zhuǎn)發(fā)到一個(gè)映射的內(nèi)部地址上。因此如果地址轉(zhuǎn)換網(wǎng)關(guān)能將每個(gè)連接均勻轉(zhuǎn)換為不同的內(nèi)部服務(wù)器地址,此后外部網(wǎng)絡(luò)中的計(jì)算機(jī)就各自與自己轉(zhuǎn)換得到的地址上服務(wù)器進(jìn)行通信,從而達(dá)到負(fù)載分擔(dān)的目的。
負(fù)載均衡服務(wù)器的好處
由于網(wǎng)民數(shù)量激增,網(wǎng)絡(luò)訪問路徑過長(zhǎng),用戶的訪問質(zhì)量容易受到嚴(yán)重影響,尤其是當(dāng)用戶與網(wǎng)站之間的鏈路被突如其來的流量擁塞時(shí)。而這種情況經(jīng)常發(fā)生在異地互聯(lián)網(wǎng)用戶急速增加的應(yīng)用上。這時(shí)候,如果在服務(wù)端應(yīng)用負(fù)載均衡(GSLB)技術(shù),就可以合理分擔(dān)系統(tǒng)負(fù)載、提高系統(tǒng)可靠性、支持網(wǎng)站內(nèi)容的虛擬化。在實(shí)際應(yīng)用中,許多IDC,如互聯(lián)通更是采用GSLB與Cache、Mirror相結(jié)合的方法來提供網(wǎng)絡(luò)加速服務(wù)。負(fù)載均衡服務(wù)具有如下特點(diǎn):
高智能化
運(yùn)用虛擬IP(VIP)地址代表目標(biāo)服務(wù)器和應(yīng)用,將會(huì)話分配到最高可用性的服務(wù)器,全程監(jiān)控每個(gè)會(huì)話,服務(wù)恢復(fù)后自動(dòng)重新登記,并轉(zhuǎn)發(fā)客戶機(jī)和服務(wù)器信息包時(shí)提供全地址轉(zhuǎn)換。簡(jiǎn)單有效的負(fù)載均衡算法可以配置包括循環(huán)法、最少連接法、散列法或最少失誤法等多種不同的負(fù)載均衡方法,也可以對(duì)個(gè)別服務(wù)器配置最大連接數(shù)量閾值和加權(quán)值,以避免服務(wù)器超載。
高可靠性
架構(gòu)在專用的高速骨干網(wǎng)之上,該主干網(wǎng)絡(luò)提供延遲極小的網(wǎng)絡(luò)連通性,從而保障GSLB的功能正常發(fā)揮和高性能,遠(yuǎn)遠(yuǎn)優(yōu)于基于公網(wǎng)的GSLB。并且,當(dāng)主站點(diǎn)機(jī)房的?Internet 出口出現(xiàn)故障時(shí),還能將用戶自動(dòng)、透明地從其他分站點(diǎn)Internet入口導(dǎo)向主站點(diǎn)服務(wù)器。
高可用性
采用熱備份方法,在極短時(shí)間內(nèi)對(duì)服務(wù)器鏈路、交換端口和交換機(jī)進(jìn)行檢測(cè)和故障轉(zhuǎn)移,使應(yīng)用免受故障影響;任何一個(gè)服務(wù)器或服務(wù)器群發(fā)生故障或阻塞,用戶將被自動(dòng)引導(dǎo)到下一個(gè)最佳備份服務(wù)器或站點(diǎn),從而更進(jìn)一步提高了服務(wù)和內(nèi)容的可用性。
#p#
服務(wù)器負(fù)載均衡
網(wǎng)絡(luò)的負(fù)載均衡是一種動(dòng)態(tài)均衡技術(shù),通過一些工具實(shí)時(shí)地分析數(shù)據(jù)包,掌握網(wǎng)絡(luò)中的數(shù)據(jù)流量狀況,把任務(wù)合理均衡地分配出去。
計(jì)算集中型的應(yīng)用,比如電子商務(wù)網(wǎng)站,服務(wù)器計(jì)算負(fù)荷會(huì)很大;讀寫頻繁的應(yīng)用,比如網(wǎng)絡(luò)數(shù)據(jù)庫,存儲(chǔ)系統(tǒng)則面臨著考驗(yàn);傳輸量大的應(yīng)用,比如視頻服務(wù),數(shù)據(jù)總是無法快速傳送,無法實(shí)現(xiàn)最好的效果;訪問量大的應(yīng)用,路由器與防火墻容易成為瓶頸。想要合理解決這些問題,升級(jí)設(shè)備、改變拓?fù)涫?quot;笨辦法",相對(duì)巧妙的方法是采用負(fù)載均衡技術(shù),用多個(gè)設(shè)備共同完成任務(wù)。
負(fù)載均衡技術(shù)基于現(xiàn)有網(wǎng)絡(luò)結(jié)構(gòu),提供了一種擴(kuò)展服務(wù)器帶寬和增加服務(wù)器吞吐量的廉價(jià)有效的方法,加強(qiáng)了網(wǎng)絡(luò)數(shù)據(jù)處理能力,提高了網(wǎng)絡(luò)的靈活性和可用性。負(fù)載均衡的應(yīng)用,能夠有效地解決網(wǎng)絡(luò)擁塞問題,能夠就近提供服務(wù),實(shí)現(xiàn)地理位置無關(guān)性(異地負(fù)載均衡)。同時(shí),這項(xiàng)技術(shù)還能提高服務(wù)器的響應(yīng)速度,提高服務(wù)器及其他資源的利用效率,避免網(wǎng)絡(luò)關(guān)鍵部位出現(xiàn)單點(diǎn)失效,從而為用戶提供更好的訪問質(zhì)量。
隨著網(wǎng)絡(luò)應(yīng)用的不斷升溫,不少網(wǎng)絡(luò)服務(wù)商也推出了負(fù)載均衡服務(wù)。如專業(yè)的網(wǎng)絡(luò)服務(wù)提供商Unihub公司的服務(wù),就是針對(duì)目前網(wǎng)絡(luò)應(yīng)用的狀況而推出的提高網(wǎng)絡(luò)處理速度、減少因個(gè)別服務(wù)器出現(xiàn)故障而影響用戶訪問的解決方案。
Unihub 的服務(wù)器負(fù)載均衡根據(jù)一定策略,能實(shí)時(shí)監(jiān)控服務(wù)器的健康狀況和負(fù)載情況,把用戶請(qǐng)求轉(zhuǎn)發(fā)給狀態(tài)健康且負(fù)載最輕的服務(wù)器。服務(wù)器負(fù)載均衡應(yīng)用于本地服務(wù)器系統(tǒng)時(shí)能夠有效地利用多臺(tái)服務(wù)器共同工作來提高服務(wù)系統(tǒng)的能力,也可以按照客戶系統(tǒng)的業(yè)務(wù)特性及實(shí)際運(yùn)行的情況提供靈活多變的設(shè)計(jì)。比如,電子商務(wù)網(wǎng)站可以指定一臺(tái)服務(wù)器用于滿足要進(jìn)行交易的訪問需求,只有在交易量很小時(shí)才和另一臺(tái)服務(wù)器共同為普通的訪問查詢請(qǐng)求服務(wù),從而避免了過多的非重要數(shù)據(jù)流量影響重要的電子商務(wù)進(jìn)程。
服務(wù)器必須具備處理大量并發(fā)訪問服務(wù)的能力,其處理能力和I/O(輸入/輸出)能力已經(jīng)成為提供服務(wù)質(zhì)量好壞的重要因素。負(fù)載均衡作為一種策略,能夠讓多臺(tái)服務(wù)器或多條鏈路共同承擔(dān)繁重的計(jì)算或I/O任務(wù),從而以較低成本消除網(wǎng)絡(luò)瓶頸,提高網(wǎng)絡(luò)的靈活性和可靠性。
在業(yè)務(wù)量不斷增長(zhǎng),需要提高服務(wù)能力時(shí),使用服務(wù)器負(fù)載均衡技術(shù),只需在智能化交換機(jī)上接上新的服務(wù)器,就可以與原有的服務(wù)器共同構(gòu)成更大容量的服務(wù)系統(tǒng)。這樣,既可以保證在擴(kuò)容時(shí)服務(wù)不中斷,又有效地保障了原有的投資。
如何解決負(fù)載平衡問題
一、問題的提出
隨著Internet和Intranet的高速發(fā)展,基于IP的應(yīng)用越來越成為網(wǎng)絡(luò)最普遍,最有用和甚至是必不可少的部分。許多知名的站點(diǎn)和ISP常常要在短時(shí)間內(nèi)接受大量的訪問而力不從心。這給網(wǎng)絡(luò)的升級(jí)維護(hù)帶來了一些問題:
1. 如果采用單一的服務(wù)器提供服務(wù),很明顯,存在著單點(diǎn)脆弱性(Single Point of Failure)。這臺(tái)服務(wù)器任何部件稍有閃失,都會(huì)給服務(wù)帶來問題;同時(shí)這也是昂貴的、難以擴(kuò)展的方案:服務(wù)器的能力需要不斷的提高,擴(kuò)充內(nèi)存,升級(jí) CPU,增加硬盤…在系統(tǒng)維護(hù)和升級(jí)的期間,服務(wù)被迫中斷;而且這種升級(jí)也有極限,總有一天,無論如何調(diào)整服務(wù)器的性能都無法滿足用戶的要求。
2. 如果采用服務(wù)器群,主要的缺點(diǎn)在于訪問地址的復(fù)雜化和負(fù)載不平衡。對(duì)于每臺(tái)服務(wù)器都必須有相應(yīng)的唯一的IP地址,給用戶的訪問和網(wǎng)絡(luò)管理帶來不便;這些服務(wù)器之間的流量分配是隨機(jī)的,不會(huì)考慮服務(wù)器當(dāng)前的負(fù)載情況,在某些情形之下反而造成連接失敗。
二、目前典型的方法
1. 使用Round-Robin DNS,將服務(wù)請(qǐng)求分布到不同的服務(wù)器上。此種方法運(yùn)行在應(yīng)用層,由于簡(jiǎn)單地將域名請(qǐng)求分布,并不了解正在運(yùn)行的服務(wù)負(fù)載及網(wǎng)絡(luò)鏈路,因此,并不能提供真正的負(fù)載平衡。Internet上最著名的負(fù)載分配方法叫 Round-Robin DNS。 Round-Robin DNS運(yùn)行在域名服務(wù)器上,是用來向每一臺(tái)服務(wù)器乃至每一個(gè)進(jìn)程分配用戶申請(qǐng)的軟件,它可以讓你配置一份 IP地址名單,然后,就可以通過域名服務(wù)器 (DNS)把申請(qǐng)有序地分配到機(jī)器、或以不同數(shù)字代表的進(jìn)程之上。然而, Round-RobinDNS被普遍公認(rèn)為一種并非完美的解決方案。因?yàn)?,它無法反映出不同的機(jī)器可能擁有不同的能力 (盡管在非常有限的程度上,可通過對(duì)能力更強(qiáng)的機(jī)器使用多個(gè)別名來進(jìn)行粗略的能力估價(jià));它不可能作為因數(shù)記入負(fù)載水平;而且它也無法檢測(cè)并避開那些已經(jīng)癱瘓了的服務(wù)器。
2 使用對(duì)應(yīng)用或網(wǎng)絡(luò)敏感的DNS服務(wù),此種方案相對(duì)第一種方案提供了更好的特征,但由于DNS的Cache機(jī)制,客戶仍然不能得到真正的負(fù)載平衡。
3 使用雙機(jī)備份的大型服務(wù)器系統(tǒng)是當(dāng)前許多ICP/ISP的升級(jí)選擇。但是此種方案并不能避免網(wǎng)絡(luò)上的單點(diǎn)故障,而且其中的一臺(tái)服務(wù)器在一般情況下處于休眠狀態(tài),增加了系統(tǒng)成本和管理成本。
4 使用網(wǎng)絡(luò)層(IP)的網(wǎng)絡(luò)流量分配設(shè)備(Director)。此種方法支持真正的負(fù)載平衡,并且提供服務(wù)的系統(tǒng)可通過網(wǎng)絡(luò)連接,分布在不同的地區(qū)。但是,不同的解決方案提供的特性區(qū)別較大,如是否支持分布的網(wǎng)絡(luò)冗余、管理是否方便等。
三、IP負(fù)載平衡方案
通過IP負(fù)載平衡產(chǎn)品,分配網(wǎng)絡(luò)訪問流量,協(xié)同一組服務(wù)器共同工作,對(duì)用戶提供完全透明的訪問通道,使高性能、高承受力且只有一個(gè)簡(jiǎn)單的訪問地址的站點(diǎn)成為可能。
IP負(fù)載平衡機(jī)制給多服務(wù)器環(huán)境帶來了兩個(gè)主要的好處:
1 系統(tǒng)可擴(kuò)縮性(Scalable)
由于Web站點(diǎn)和服務(wù)器群擁有越來越多的用戶,硬件的升級(jí)越來越頻繁,這無疑是一件令人乏味和很不經(jīng)濟(jì)的事情。系統(tǒng)在安裝了負(fù)載平衡產(chǎn)品之后,負(fù)載平衡器可以讓一簇相同或不同的服務(wù)器共同來完成一臺(tái)超級(jí)服務(wù)器的工作,給系統(tǒng)提供了無限的升級(jí)能力,減少了系統(tǒng)升級(jí)的開銷。負(fù)載平衡器介于服務(wù)器和用戶端之間,扮演了一個(gè)智能的指揮者角色。根據(jù)當(dāng)前各個(gè)服務(wù)器的工作狀態(tài)和能力來分配服務(wù)器負(fù)載,使整個(gè)系統(tǒng)能更高效的響應(yīng)用戶的請(qǐng)求。
2 系統(tǒng)的容錯(cuò)性(Fault Tolerance)
"不間斷服務(wù)"、"24x7服務(wù)"(no down time)的概念越來越受業(yè)界人士重視。IP負(fù)載平衡器實(shí)時(shí)監(jiān)視各個(gè)服務(wù)器的工作狀態(tài),不分配任務(wù)給那些力不從心的服務(wù)器,這種有彈性的負(fù)載分配方式充分利用了每臺(tái)服務(wù)器,使用戶能得到流暢、連續(xù)的透明的服務(wù)。這也正是在線服務(wù)的最終目標(biāo)。






