我們知道,僅僅簡單的依靠提高硬件性能并不能真正解決網(wǎng)站負(fù)載均衡問題。因?yàn)閱闻_服務(wù)器的性能總是有限的,一般來講,一臺PC服務(wù)器所能提供的并發(fā)訪問處理能力大約為1000個,更為高檔的專用服務(wù)器能夠支持3000-5000個并發(fā)訪問,這樣的能力還是無法滿足負(fù)載較大的網(wǎng)站的要求。 尤其是網(wǎng)絡(luò)請求具有突發(fā)性,當(dāng)某些重大事件發(fā)生時,網(wǎng)絡(luò)訪問就會急劇上升,從而造成網(wǎng)絡(luò)瓶頸。必須采用多臺服務(wù)器提供網(wǎng)絡(luò)服務(wù),并將網(wǎng)絡(luò)請求分配給這些服務(wù)器分擔(dān),才能提供處理大量并發(fā)服務(wù)的能力。
當(dāng)使用多臺服務(wù)器來分擔(dān)負(fù)載的時候,最簡單的辦法是將不同的服務(wù)器用在不同的方面。按提供的內(nèi)容進(jìn)行分割時,可以將一臺服務(wù)器用于提供新聞頁面,而另一臺用于提供游戲頁面;或者可以按服務(wù)器的功能進(jìn)行分割,將一臺服務(wù)器用于提供靜態(tài)頁面訪問,而另一些用于提供CGI等需要大量消耗資源的動態(tài)頁面訪問。然而由于網(wǎng)絡(luò)訪問的突發(fā)性,使得很難確定那些頁面造成的負(fù)載太大,如果將服務(wù)的頁面分割的過細(xì)就會造成很大浪費(fèi)。
事實(shí)上造成負(fù)載過大的頁面常常是在變化中的,如果要經(jīng)常按照負(fù)載變化來調(diào)整頁面所在的服務(wù)器,那么勢必對管理和維護(hù)造成極大的問題。因此這種分割方法只能是大方向的調(diào)整,對于大負(fù)載的網(wǎng)站,根本的解決辦法還需要應(yīng)用負(fù)載均衡技術(shù)。
一、大型網(wǎng)站的整體網(wǎng)絡(luò)系統(tǒng)設(shè)計
某教育網(wǎng)站是一個大型遠(yuǎn)程教育網(wǎng)站,可能涉及到多方面的網(wǎng)站應(yīng)用,包括計算集中型的應(yīng)用,讀寫頻繁的應(yīng)用,比如網(wǎng)絡(luò)數(shù)據(jù)庫;傳輸量大的應(yīng)用,比如流媒體服務(wù);訪問量大的應(yīng)用,比如WEB應(yīng)用。
由于存在多方面的網(wǎng)站應(yīng)用,因而對于網(wǎng)站系統(tǒng),數(shù)據(jù)流量負(fù)載并不均勻。對于計算集中型的應(yīng)用,服務(wù)器計算負(fù)荷會很大;對于讀寫頻繁的應(yīng)用,存儲系統(tǒng)面臨考驗(yàn);對于傳輸量大的應(yīng)用,網(wǎng)絡(luò)帶寬是關(guān)鍵;對于訪問量大的應(yīng)用,防火墻和路由器成為瓶頸。
針對上述問題與分析,首先是要從硬件和網(wǎng)絡(luò)結(jié)構(gòu)上盡量提高網(wǎng)絡(luò)和系統(tǒng)性能和效率。首先,采用高性能的PC服務(wù)器作為網(wǎng)絡(luò)服務(wù)器,提高服務(wù)器的計算和負(fù)載能力。采用大容量、高傳輸速率的存儲系統(tǒng)和利用RAID 5技術(shù)實(shí)現(xiàn)很高的讀寫速度和性能。對于流媒體服務(wù)和WEB應(yīng)用,采用千兆技術(shù)實(shí)現(xiàn)到INTERNET的高速接入;選用高性能的防火墻用于提供內(nèi)外網(wǎng)訪問和WEB發(fā)布服務(wù)的安全,同時,實(shí)現(xiàn)高效的WEB訪問。
二、網(wǎng)站負(fù)載均衡解決方案
某教育網(wǎng)站作為一個大型教育網(wǎng)站,業(yè)務(wù)量的發(fā)展將非常迅速,并且,網(wǎng)絡(luò)新的應(yīng)用層出不窮,即使按照當(dāng)前最優(yōu)配置建設(shè)的網(wǎng)站系統(tǒng),也很快會落后于網(wǎng)絡(luò)流量的發(fā)展。尤其是網(wǎng)站的核心部分,其數(shù)據(jù)流量和計算強(qiáng)度之大,使得單一設(shè)備根本無法承擔(dān),而如何在完成同樣功能的多個網(wǎng)絡(luò)設(shè)備之間實(shí)現(xiàn)合理的業(yè)務(wù)量分配,使之不至于出現(xiàn)一臺設(shè)備過忙、而別的設(shè)備卻未充分發(fā)揮處理能力的情況,就成了一個問題,負(fù)載均衡機(jī)制也因此應(yīng)運(yùn)而生。
負(fù)載均衡建立在現(xiàn)有網(wǎng)絡(luò)結(jié)構(gòu)之上,它提供了一種廉價有效的方法擴(kuò)展服務(wù)器帶寬和增加吞吐量,加強(qiáng)網(wǎng)絡(luò)數(shù)據(jù)處理能力,提高網(wǎng)絡(luò)的靈活性和可用性。它主要完成以下任務(wù):解決網(wǎng)絡(luò)擁塞問題,服務(wù)就近提供,實(shí)現(xiàn)地理位置無關(guān)性;為用戶提供更好的訪問質(zhì)量;提高服務(wù)器響應(yīng)速度;提高服務(wù)器及其他資源的利用效率;避免了網(wǎng)絡(luò)關(guān)鍵部位出現(xiàn)單點(diǎn)失效。
根據(jù)上述分析,流量負(fù)載可能在網(wǎng)絡(luò)中很多地方出現(xiàn),因而負(fù)載均衡策略也應(yīng)有多種多樣的形式。廣義上的負(fù)載均衡既可以設(shè)置專門的網(wǎng)關(guān)、負(fù)載均衡器,也可以通過一些專用軟件與協(xié)議來實(shí)現(xiàn)。在OSI七層協(xié)議模型中的第二、三、四、七層都有相應(yīng)的負(fù)載均衡策略,例如:在數(shù)據(jù)鏈路層上,可以基于數(shù)據(jù)包的目的MAC地址選擇不同鏈路;在網(wǎng)絡(luò)層,可以用基于IP地址的分配方式,將數(shù)據(jù)流疏通到多個節(jié)點(diǎn);而所謂第四層交換乃至第七層交換,本身便是一種基于訪問流量的控制方式,起到了負(fù)載均衡的作用。
因此,我們將從網(wǎng)絡(luò)的層次來闡述某教育網(wǎng)站的系統(tǒng)負(fù)載均衡方案。
1、帶均衡策略的服務(wù)器群集解決方案
某教育網(wǎng)站的Web服務(wù)器及其他應(yīng)用服務(wù)器承載著重要的網(wǎng)站應(yīng)用。然而,單一計算機(jī)可以提供有限級別的服務(wù)器可靠性和可伸縮性。但是,通過將兩個或兩個以上高級服務(wù)器的主機(jī)連成群集,網(wǎng)絡(luò)負(fù)載均衡就能夠提供關(guān)鍵任務(wù)服務(wù)器所需的可靠性和性能。
使用多服務(wù)器的分布式結(jié)構(gòu),將網(wǎng)站的WEB和其它應(yīng)用分布在多臺服務(wù)器上,即將某教育網(wǎng)站的WEB和其它應(yīng)用服務(wù)分布在4臺IBM x336服務(wù)器上。其中每臺服務(wù)器都具備等價的地位,都可以單獨(dú)對外提供服務(wù)而無須其他服務(wù)器的輔助。然后,通過天融信的NG FW4000防火墻將外部發(fā)送來的請求均勻分配到4臺服務(wù)器上,接收到連接請求的服務(wù)器都獨(dú)立回應(yīng)客戶的請求。由于通過同步分發(fā),建立內(nèi)容完全一致的Web服務(wù)器并不困難,因此基于服務(wù)器集群的負(fù)載均衡技術(shù)是很容易實(shí)現(xiàn)的。
NG FW4000防火墻可以支持一個服務(wù)器陣列,這個陣列經(jīng)過防火墻對外表現(xiàn)為單臺的服務(wù)器,防火墻將外部來的訪問在這些服務(wù)器之間進(jìn)行均衡,同時可以識別出故障的服務(wù)器。防火墻的均衡策略如下:
順序選擇地址+權(quán)值。
根據(jù)PING的時間間隔來選擇地址+權(quán)值。
根據(jù)CONNECT的時間間隔來選擇地址+權(quán)值。
根據(jù)CONNECT然后發(fā)送請求并得到應(yīng)答的時間間隔來選擇地址+權(quán)值。
2、采用SSL/XML加速的解決方案
由于某教育網(wǎng)站在網(wǎng)站應(yīng)用系統(tǒng)建設(shè)中,要求應(yīng)用系統(tǒng)模塊之間的接口采用XML標(biāo)準(zhǔn)和Web Service規(guī)范,同時,作為一個綜合性的大型網(wǎng)站,要求提供標(biāo)準(zhǔn)的在線交易功能和安全可靠的網(wǎng)上支付功能。因此,在網(wǎng)站網(wǎng)絡(luò)傳輸?shù)膬?nèi)容上,SSL和XML將占用相當(dāng)?shù)姆?wù)器資源,會影響網(wǎng)絡(luò)的傳輸速度。
SSL(加密套接字協(xié)議層)是一種應(yīng)用極為廣泛的WEB信息安全傳送協(xié)議。最初由Netscape開發(fā)以提供Internet上的安全連接和傳送,目前,98%的Web上的安全傳送都運(yùn)用SSL。SSL已經(jīng)成了安全互聯(lián)網(wǎng)交易中數(shù)據(jù)加密的工業(yè)標(biāo)準(zhǔn),采用SSL的網(wǎng)站在1998年和1999年間增加了兩倍。由于SSL運(yùn)用加密算法和密碼,其加密/解密過程需大量占用服務(wù)器的CPU資源,使CPU利用率接近100%,從而大大降低了服務(wù)器性能。當(dāng)網(wǎng)絡(luò)用戶大大增加后,網(wǎng)絡(luò)性能將急劇降低,很可能用戶會因網(wǎng)絡(luò)響應(yīng)欠佳而失去耐心離開網(wǎng)站。
電子商務(wù)時代,服務(wù)器反應(yīng)速度至關(guān)重要,為根本解決SSL給服務(wù)器運(yùn)行帶來的不利影響,必須采用專門設(shè)備處理SSL協(xié)議,以使服務(wù)器CPU從繁重的加密/解密過程中解脫出來。

如上圖所示,當(dāng)使用SSL加速器時,所有非SSL數(shù)據(jù)流可以未受任何改變地通過加速器;但是當(dāng)由SSL加密過的數(shù)據(jù)流經(jīng)過SSL加速器時,進(jìn)入的SSL數(shù)據(jù)流被解密并干凈地傳給服務(wù)器,而外流的SSL數(shù)據(jù)流被加密并傳向客戶。這樣服務(wù)器只需簡單地處理SSL請求,原本消耗眾多計算資源的HTTP/SSL現(xiàn)在被專用的SSL加速設(shè)備負(fù)責(zé)處理。使用了SSL加速器之后,系統(tǒng)每秒處理的安全連接數(shù)可由原來幾十個增長到數(shù)百個。當(dāng)然,如果需要最大限度地利用服務(wù)器,也可以卸載SSL處理工作。
此外,SSL加速器可以實(shí)現(xiàn)靈活的動態(tài)堆疊,實(shí)行自動的“任務(wù)分擔(dān)”以得到最大的擴(kuò)展能力。一般SSL加速器可以自動與所有類型的服務(wù)器協(xié)同運(yùn)行,并可以支持一臺或多臺服務(wù)器。
XML(擴(kuò)展標(biāo)識語言)是SGML(標(biāo)準(zhǔn)通用標(biāo)識語言)的一個子集,它已經(jīng)快速取代EDI(電子數(shù)據(jù)交換)成為B2B網(wǎng)上交易的統(tǒng)一格式。事實(shí)已經(jīng)證明,XML所采用的標(biāo)準(zhǔn)技術(shù)最適合Web開發(fā)。XML支持結(jié)構(gòu)化的數(shù)據(jù),可以更詳細(xì)地定義某個數(shù)據(jù)對象的數(shù)據(jù)結(jié)構(gòu),例如,描述產(chǎn)品,詳細(xì)定義該產(chǎn)品的生產(chǎn)廠、產(chǎn)品名、產(chǎn)品號、產(chǎn)地等信息,這種定義不僅為標(biāo)記該產(chǎn)品提供方便,而且這種XML數(shù)據(jù)很容易按生產(chǎn)廠、產(chǎn)品名等排序,使用戶的查詢變得更方便。
XML加速器可以將XML交易進(jìn)行分類,如按照商業(yè)合作伙伴名稱或類型、交易價值或數(shù)量以及時刻或時區(qū)為依據(jù),配置業(yè)務(wù)優(yōu)先級,從而提高響應(yīng)速度,解放服務(wù)器資源,更快地處理交易。智能化的XML加速器可以使用多變量分類包括與、或,以滿足復(fù)雜業(yè)務(wù)的優(yōu)先級要求。還有的XML加速器自身提供服務(wù)器的負(fù)載均衡,以達(dá)到快速、安全的目的。


