童強(qiáng) 宋賢鈞
摘要:影響應(yīng)用服務(wù)響應(yīng)速度的兩個(gè)主要因素是網(wǎng)絡(luò)瓶頸和服務(wù)器性能瓶頸。為了解決瓶頸問(wèn)題從而提升應(yīng)用服務(wù)的性能,在控制投入的前提下,基于負(fù)載均衡、服務(wù)器群集技術(shù)提出了一套解決方案。
關(guān)鍵詞:負(fù)載均衡;應(yīng)用服務(wù);瓶頸
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2012)33-7896-03
隨著信息技術(shù)的不斷發(fā)展,人們對(duì)網(wǎng)絡(luò)與計(jì)算機(jī)的要求也不斷提高,在要求能夠完成用戶操作請(qǐng)求的基礎(chǔ)上,同時(shí)要求各類應(yīng)用能夠做到較完美的用戶體驗(yàn)。在各類網(wǎng)絡(luò)應(yīng)用服務(wù)中,要做到用戶體驗(yàn)的要求,除了要做到用戶界面友好、能夠響應(yīng)用戶請(qǐng)求等基本要求外,還必須保證有較快的響應(yīng)速度[1]。然而在各類并發(fā)數(shù)量較大、數(shù)據(jù)交換量大的應(yīng)用服務(wù)當(dāng)中,要做到這一點(diǎn)還需要進(jìn)行合理的網(wǎng)絡(luò)和應(yīng)用服務(wù)部署。
1應(yīng)用服務(wù)瓶頸分析
圖1是某企業(yè)應(yīng)用服務(wù)的常規(guī)部署簡(jiǎn)化圖。該企業(yè)通過(guò)ISP1和ISP2提供的兩條鏈路接入Internent,應(yīng)用服務(wù)器部署在企業(yè)內(nèi)部,企業(yè)內(nèi)用戶通過(guò)企業(yè)局域網(wǎng)訪問(wèn)應(yīng)用服務(wù)器,Intertnet用戶通過(guò)個(gè)人寬帶等方式訪問(wèn)。由圖1可見(jiàn),對(duì)于企業(yè)內(nèi)部用戶,影響響應(yīng)速度的因素包括局域網(wǎng)的性能和應(yīng)用服務(wù)的性能;而對(duì)于Internent用戶,除應(yīng)用服務(wù)性能、部分主干網(wǎng)性能的影響外,還取決于網(wǎng)絡(luò)總出口兩條鏈路帶寬能否得到有效應(yīng)用(每個(gè)ISP提供的最大帶寬是確定的)。由此可見(jiàn),影響應(yīng)用服務(wù)響應(yīng)的主要因素是網(wǎng)絡(luò)出口鏈路瓶頸、局域網(wǎng)性能和應(yīng)用服務(wù)性能瓶頸。
2負(fù)載均衡解決瓶頸問(wèn)題
負(fù)載均衡(又稱為負(fù)載分擔(dān)),英文名稱為L(zhǎng)oadBalance,核心的意思是將要處理的任務(wù)或者操作請(qǐng)求分?jǐn)偟蕉鄠€(gè)操作單元上進(jìn)行執(zhí)行,由此提高設(shè)備利用率和處理效率[2]。比如:企業(yè)業(yè)務(wù)服務(wù)器在客戶訪問(wèn)量巨大時(shí)僅靠單一的服務(wù)器來(lái)處理各項(xiàng)業(yè)務(wù)時(shí),可能造成服務(wù)器因負(fù)荷過(guò)重而導(dǎo)致響應(yīng)速度變慢,但如果把這些處理任務(wù)分配在多臺(tái)設(shè)備上進(jìn)行,那么每臺(tái)設(shè)備上承載的任務(wù)就較輕,響應(yīng)速度會(huì)加快;大量數(shù)據(jù)通過(guò)一條鏈路傳輸可能很慢,但是分擔(dān)到多條鏈路上傳輸將變快,這就是負(fù)載均衡。負(fù)載均衡建立在現(xiàn)有網(wǎng)絡(luò)結(jié)構(gòu)之上,它提供了一種廉價(jià)又有效的方法擴(kuò)展網(wǎng)絡(luò)設(shè)備和服務(wù)器的帶寬、增加吞吐量、加強(qiáng)網(wǎng)絡(luò)數(shù)據(jù)處理能力、提高網(wǎng)絡(luò)的靈活性和可用性[3]。
2.1服務(wù)器性能瓶頸
對(duì)于服務(wù)器性能瓶頸問(wèn)題的解決,采用高性能的服務(wù)器設(shè)備理所當(dāng)然可以實(shí)現(xiàn),但是成本較高;為了節(jié)約成本并得到高性能服務(wù)器的快速響應(yīng)效果,我們基于服務(wù)器群集、應(yīng)用負(fù)載均衡技術(shù)實(shí)現(xiàn)。簡(jiǎn)單地說(shuō),就是使用多臺(tái)普通服務(wù)器作為群集的服務(wù)器,如圖2所示,假設(shè)服務(wù)器對(duì)外服務(wù)的IP地址為61.178.249.80,
就把這個(gè)IP作為群集的虛擬IP地址,對(duì)于群集的物理服務(wù)器,我們配置具體的IP地址為61.178.249.81和61.178.249.82,當(dāng)用戶訪問(wèn)時(shí)通過(guò)群集的虛擬IP地址61.178.249.80訪問(wèn),負(fù)載均衡會(huì)根據(jù)各服務(wù)器的負(fù)載情況來(lái)選擇該訪問(wèn)哪臺(tái)服務(wù)器。下面以基于.NET的在線考試系統(tǒng)為例,講述主要的實(shí)施步驟。因?yàn)?NET是基于WINDOWS系列的操作系統(tǒng),因此選用WINDOWSSERVER2003作為服務(wù)器的操作系統(tǒng),分別在兩臺(tái)服務(wù)器操作系統(tǒng)的網(wǎng)絡(luò)連接屬性中增加“負(fù)載均衡”,并在負(fù)載均衡屬性中設(shè)置服務(wù)器群集虛擬IP地址為負(fù)載均衡專用IP地址,然后分別設(shè)置兩臺(tái)服務(wù)器IP地址,在高級(jí)選項(xiàng)卡中增加服務(wù)器群集虛擬IP地址即可;根據(jù)應(yīng)用系統(tǒng)的運(yùn)行要求,安裝相應(yīng)的環(huán)境并進(jìn)行合理配置,這里是.NET框架和IIS。在LINUX等其他主流的操作系統(tǒng)環(huán)境下也有相應(yīng)的服務(wù)器群集方法。這種單純靠操作系統(tǒng)實(shí)現(xiàn)的服務(wù)器群集負(fù)載均衡方法不需要額外的投入、且操作簡(jiǎn)單,當(dāng)然也可以借助專用的負(fù)載均衡器這類硬件設(shè)備實(shí)現(xiàn),效果更好[4]。
2.2網(wǎng)絡(luò)瓶頸
在網(wǎng)絡(luò)中,數(shù)據(jù)的傳輸鏈路是通過(guò)路由選擇的,在不增加額外投入的前提下可根據(jù)出口的情況通過(guò)配置出口路由器策略路由的方法來(lái)均衡各出口鏈路的負(fù)載。在出口路由器上配置策略路由時(shí)考慮以下幾點(diǎn):根據(jù)往常各網(wǎng)段的網(wǎng)絡(luò)流量情況,按照兩個(gè)出口帶寬的比例將網(wǎng)段分成網(wǎng)段流量之和比例相近的兩部分,網(wǎng)絡(luò)流量總和較小的那部分網(wǎng)段訪問(wèn)外網(wǎng)時(shí)走帶寬較小的鏈路,而另一部分網(wǎng)段走另一條鏈路;根據(jù)目標(biāo)地址所屬運(yùn)營(yíng)商走不同的運(yùn)營(yíng)商鏈路;添加指向不同鏈路的默認(rèn)路由,指向帶快較大鏈路的路由優(yōu)先級(jí)設(shè)置高點(diǎn)。
啟用策略路由后,數(shù)據(jù)通過(guò)路由轉(zhuǎn)發(fā)時(shí)先根據(jù)策略路由來(lái)確定下一跳,下一跳可達(dá)則執(zhí)行策略路由,由此對(duì)鏈路的負(fù)載進(jìn)行了控制;策略路由不可達(dá)則查詢路由表;由于有多個(gè)出口,指向多個(gè)出口的默認(rèn)路由優(yōu)先級(jí)不同,因此即使某條鏈路故障時(shí),另外的鏈路也可正常工作。
提升局域網(wǎng)主干網(wǎng)絡(luò)性能可以通過(guò)以太網(wǎng)通道來(lái)實(shí)現(xiàn),以太網(wǎng)通道可以將多條物理鏈路聚合為一條邏輯鏈路,由此可以達(dá)到提升網(wǎng)絡(luò)帶寬、鏈路負(fù)載均衡和冗余備份的效果。具體實(shí)施時(shí)如圖3所示,分別在核心交換和匯聚交換機(jī)上選定三個(gè)同類型的端口作為待聚合的端口,配置聚合協(xié)議和負(fù)載均衡的方式即可。負(fù)載均衡的方式比較靈活,主要有:基于源IP、基于目的IP、基于源-目的IP、基于源端口,基于目的端口,基于源-目的端口等方式,可根據(jù)需要靈活選用。
核心和匯聚交換機(jī)上主要配置如圖4。
這樣配置后,三條1G帶寬的鏈路相當(dāng)于1條3G帶寬的,而且可以根據(jù)設(shè)定的負(fù)載均衡方式進(jìn)行負(fù)載均衡,并且當(dāng)部分鏈路故障時(shí),其他的鏈路可以保障網(wǎng)絡(luò)的正常。
2.3使用負(fù)載均衡器進(jìn)行負(fù)載均衡
和傳統(tǒng)的基于路由和二、三層交換的網(wǎng)絡(luò)設(shè)備不同,應(yīng)用負(fù)載均衡器實(shí)施的關(guān)鍵是對(duì)應(yīng)用的理解,針對(duì)具體應(yīng)用系統(tǒng)的特性來(lái)設(shè)計(jì)和部署。
目前廣泛使用的負(fù)載均衡器較多,較高端的如:F5-BIG-IP-LTM、RadwareDefensePro(3020)、ArrayTMX5000等。這類負(fù)載均衡器支持多種負(fù)載均衡算法,用戶可根據(jù)設(shè)計(jì)需求進(jìn)行負(fù)載均衡策略的設(shè)置;此外,還能夠抵御各類影響服務(wù)器性能發(fā)揮的攻擊。如RadwareDefensePro3020就具有入侵防范的功能,且支持多條Internent鏈路接入,能夠防護(hù)來(lái)自多條鏈路的應(yīng)用層攻擊、DDos攻擊等[4]。這類應(yīng)用負(fù)載均衡器的基本原理如圖5所示。
負(fù)載均衡器對(duì)外提供一個(gè)虛擬的應(yīng)用服務(wù)器,接收所有客戶端的請(qǐng)求,對(duì)內(nèi)通過(guò)負(fù)載均衡算法將客戶請(qǐng)求轉(zhuǎn)發(fā)到后臺(tái)的多個(gè)應(yīng)用實(shí)例,并通過(guò)應(yīng)用健康檢查準(zhǔn)確判斷應(yīng)用程序的工作和服務(wù)狀況,一旦發(fā)現(xiàn)服務(wù)異常的應(yīng)用實(shí)例則將其從負(fù)載均衡的應(yīng)用服務(wù)組中剔除。如F5-BIG-IP應(yīng)用交換機(jī)對(duì)服務(wù)器作負(fù)載均衡是采用基于網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)的負(fù)載均衡技術(shù)[4]。
3結(jié)束語(yǔ)
經(jīng)過(guò)對(duì)使用負(fù)載均衡技術(shù)前后應(yīng)用服務(wù)的性能測(cè)試情況對(duì)比發(fā)現(xiàn),使用負(fù)載均衡技術(shù)后的應(yīng)用服務(wù)性能大大提升,這也充分表明瓶頸問(wèn)題得到有效緩解。這一應(yīng)用服務(wù)瓶頸解決方案可以在各類應(yīng)用服務(wù)器的部署過(guò)程中用于提升網(wǎng)絡(luò)可靠性和網(wǎng)絡(luò)性能。
然而,網(wǎng)絡(luò)的實(shí)際情況在不斷變化,有效地選擇最佳路由路徑、避免網(wǎng)絡(luò)瓶頸的發(fā)生需要根據(jù)變化著的實(shí)際的網(wǎng)絡(luò)情況來(lái)選擇,對(duì)于要求較高的應(yīng)用服務(wù)需要使用支持實(shí)時(shí)探測(cè)負(fù)載情況、支持多種負(fù)載均衡算法的負(fù)載均衡器來(lái)實(shí)現(xiàn)[5]。
參考文獻(xiàn):
[1]秦琴.運(yùn)用負(fù)載均衡技術(shù)來(lái)實(shí)現(xiàn)網(wǎng)絡(luò)優(yōu)化[J].科技資訊,2007,(22).
[2]宋薇薇.群集系統(tǒng)中的幾種負(fù)載均衡技術(shù)[J].程序員,2002,9.
[3]喻蕓.網(wǎng)絡(luò)負(fù)載均衡問(wèn)題的對(duì)策和建議[J].科技廣場(chǎng),2008(3):56-58.
[4]徐昆,夏玉福.基于網(wǎng)管業(yè)務(wù)特征的負(fù)載均衡策略研究[J].計(jì)算機(jī)應(yīng)用研究,2012(3)
[5]宋興彬.集群和負(fù)載均衡技術(shù)在省級(jí)數(shù)據(jù)集中的應(yīng)用研究[J].計(jì)算機(jī)工程與設(shè)計(jì),2009(3):24-25.