丁 惠
隨著Internet的廣泛使用和企業(yè)內(nèi)部網(wǎng)Intranet的建立,目前的校園網(wǎng)中數(shù)據(jù)應(yīng)用系統(tǒng)大多已采用Browser/Server(瀏覽器/服務(wù)器)方式的多層次結(jié)構(gòu),最終用戶能采用方便直觀的Web網(wǎng)頁(yè)瀏覽器,在后臺(tái)數(shù)據(jù)庫(kù)服務(wù)器的支持下通過(guò)網(wǎng)頁(yè)方式請(qǐng)求各類應(yīng)用服務(wù)。
但是由于訪問(wèn)用戶數(shù)量的不斷增加、再加上網(wǎng)頁(yè)內(nèi)容與多媒體技術(shù)的迅速發(fā)展和各類服務(wù)質(zhì)量要求的顯著提升,Web服務(wù)器承受著越來(lái)越大的壓力,通過(guò)各種方式不斷提高Web服務(wù)器的性能成為亟待解決的問(wèn)題。
在三層結(jié)構(gòu)的Web技術(shù)中,數(shù)據(jù)庫(kù)不是直接向客戶機(jī)提供服務(wù),而是與Web服務(wù)器溝通,實(shí)現(xiàn)了對(duì)客戶信息服務(wù)的動(dòng)態(tài)性、實(shí)時(shí)性和交互性。這樣的功能是通過(guò)諸如CGI,ISAPI,NSAPI,以及Java創(chuàng)建的服務(wù)器應(yīng)用程序來(lái)實(shí)現(xiàn)的。
Web服務(wù)器的作用是整理、儲(chǔ)存各種Web資源,并響應(yīng)客戶端軟件(Web瀏覽器)請(qǐng)求,把客戶所需要的資源傳送到客戶端。他的作用最終體現(xiàn)在對(duì)內(nèi)容特別是動(dòng)態(tài)內(nèi)容的提供上,這也是Web服務(wù)器與應(yīng)用服務(wù)器的區(qū)別所在。Web服務(wù)器主要負(fù)責(zé)同Web瀏覽器交互時(shí)提供動(dòng)態(tài)產(chǎn)生的HTML文檔,除此之外,還提供諸如XML格式的應(yīng)用數(shù)據(jù),可以提供在更大范圍內(nèi)與各種數(shù)據(jù)源建立鏈接,為瀏覽器提供更為豐富的內(nèi)容。
在系統(tǒng)運(yùn)行時(shí),Web服務(wù)器往往要支撐大量而又密集的用戶點(diǎn)擊和應(yīng)對(duì)動(dòng)態(tài)內(nèi)容的需求,所以即使再高檔的服務(wù)器設(shè)備,面對(duì)不斷增加的用戶,單位時(shí)間內(nèi)所支持的訪問(wèn)量也是有個(gè)限度的,因?yàn)閯?dòng)態(tài)內(nèi)容的應(yīng)用需求要頻繁地調(diào)用數(shù)據(jù)庫(kù)的數(shù)據(jù)和應(yīng)用程序,會(huì)占用大量的服務(wù)器資源。因此,除了提高Web服務(wù)器本身的配置,如采用處理速度更高的CUP、更大的內(nèi)存、更好的磁盤系統(tǒng)、增加網(wǎng)絡(luò)帶寬等之外,還應(yīng)不斷采用好的方法來(lái)改善Web服務(wù)器性能。
一、采用多個(gè)Web服務(wù)器并行工作的方法
要建立一個(gè)高負(fù)載的Web站點(diǎn),就要使用多服務(wù)器的分布式結(jié)構(gòu)。多個(gè)Web服務(wù)器并行工作又可采用兩種方式:
(1)所有服務(wù)器的內(nèi)容完全相同,根據(jù)用戶的IP來(lái)決定訪問(wèn)哪一臺(tái)服務(wù)器。
(2)每臺(tái)服務(wù)器所起的作用不同,屬于非對(duì)稱的體系結(jié)構(gòu)。非對(duì)稱的服務(wù)器結(jié)構(gòu)中每個(gè)服務(wù)器的作用是不同的,比如說(shuō),一臺(tái)服務(wù)器用于提供靜態(tài)網(wǎng)頁(yè),而另一臺(tái)用于提供動(dòng)態(tài)網(wǎng)頁(yè)等。
二、采用web交換機(jī)的方法
大型的網(wǎng)絡(luò)一般都是由大量的專用技術(shù)設(shè)備組成的,例如包括防火墻、路由器、第2層和第3層交換機(jī)、負(fù)載均衡設(shè)備、緩沖服務(wù)器以及Web服務(wù)器。如何將這些設(shè)備有機(jī)地組合在一起,是一個(gè)直接影響到網(wǎng)絡(luò)性能的關(guān)鍵性問(wèn)題?,F(xiàn)在許多交換機(jī)提供第四層交換功能,可以將一個(gè)內(nèi)部IP的地址映射為多個(gè)內(nèi)部IP地址,對(duì)每次TCP鏈接請(qǐng)求動(dòng)態(tài)使用其中一個(gè)內(nèi)部地址,達(dá)到負(fù)載均衡的目的。
Web內(nèi)容交換技術(shù)方法,即URL、交換或七層交換技術(shù),提供了一種對(duì)訪問(wèn)流量的高層控制方式。Web內(nèi)容交換技術(shù)檢查所有的HTTP報(bào)頭,根據(jù)報(bào)頭的信息來(lái)支持負(fù)載均衡的決定,并可以根據(jù)這些信息來(lái)確定如何為個(gè)人主頁(yè)和圖像數(shù)據(jù)等內(nèi)容提供服務(wù)。它不是根據(jù)TCP端口號(hào)來(lái)進(jìn)行控制的,所以不會(huì)造成訪問(wèn)流量的滯銷。如果Web服務(wù)器已經(jīng)對(duì)圖像服務(wù)、SSL對(duì)話、數(shù)據(jù)庫(kù)事務(wù)服務(wù)之類的特殊功能進(jìn)行了優(yōu)化,那么采用這個(gè)層次的流量控制將可以提高網(wǎng)絡(luò)的性能。目前,采用七層交換技術(shù)的產(chǎn)品與方案,有CISCO的CDN即內(nèi)容交換網(wǎng)絡(luò)系統(tǒng)等。
三、采用負(fù)載均衡的方法
負(fù)載均衡是建立在現(xiàn)有網(wǎng)絡(luò)結(jié)構(gòu)之上的,他提供了一種廉價(jià)而有效的方法來(lái)擴(kuò)展服務(wù)器帶寬,增加吞吐量,加強(qiáng)網(wǎng)絡(luò)數(shù)據(jù)處理能力,提高網(wǎng)絡(luò)的靈活性和可用性。它主要完成以下任務(wù):
(1)解決網(wǎng)絡(luò)擁塞問(wèn)題,服務(wù)就近提供,實(shí)現(xiàn)地理位置無(wú)關(guān)性。
(2)給用戶提供更好的訪問(wèn)質(zhì)量。
(3)提高服務(wù)器的響應(yīng)速度。
(4)提高服務(wù)器及其他資源的利用效率。
(5)避免了網(wǎng)絡(luò)關(guān)鍵部位出現(xiàn)點(diǎn)單失效。
對(duì)一個(gè)網(wǎng)絡(luò)的負(fù)載均衡應(yīng)用,可以從網(wǎng)絡(luò)的不同層次入手,具體情況要看對(duì)網(wǎng)絡(luò)瓶頸所在之處的具體分析,大體上不外乎從傳輸鏈路聚合、采用更高層網(wǎng)絡(luò)交換技術(shù)和設(shè)置服務(wù)器集群策略3個(gè)角度來(lái)實(shí)現(xiàn)。
進(jìn)行負(fù)載均衡的網(wǎng)絡(luò)設(shè)計(jì)結(jié)構(gòu)為對(duì)稱結(jié)構(gòu),在對(duì)稱結(jié)構(gòu)中每臺(tái)服務(wù)器都具備等價(jià)的地位,都可以單獨(dú)對(duì)外提供服務(wù)而無(wú)需其他服務(wù)器的輔助。然后,可以通過(guò)某種技術(shù),將外部發(fā)送來(lái)的請(qǐng)求均勻分配到對(duì)稱結(jié)構(gòu)中的每臺(tái)服務(wù)器上,接收到連接請(qǐng)求的服務(wù)器獨(dú)立回應(yīng)客戶的請(qǐng)求。在這種結(jié)構(gòu)中,由于建立內(nèi)容完全一致的Web服務(wù)器并不困難,因此負(fù)載均衡的方法就成為建立一個(gè)高負(fù)載Web站點(diǎn)的關(guān)鍵性技術(shù)方法。
總之,負(fù)載均衡是一種策略,能讓多臺(tái)服務(wù)器或多條鏈接共同承擔(dān)一些繁重的計(jì)算或I/O任務(wù),從而以較低的成本來(lái)消除網(wǎng)絡(luò)瓶頸,提高網(wǎng)絡(luò)的可靠性和靈活性。
四、采用Web緩存的方法
采用Web緩存的方法,就是將遠(yuǎn)程服務(wù)器上的Web文件夾緩存到本地,使得重復(fù)訪問(wèn)相同的目的地址時(shí),直接從本地緩存讀取發(fā)送給用戶,而不用再連接到遠(yuǎn)程服務(wù)器,達(dá)到提高訪問(wèn)速度、減少網(wǎng)絡(luò)流量的目的。
當(dāng)Internet上某一用戶發(fā)現(xiàn)HTTP請(qǐng)求時(shí),緩存服務(wù)器代表用戶向目的Web服務(wù)器發(fā)出請(qǐng)求,目的服務(wù)器將響應(yīng)這一請(qǐng)求的Web對(duì)象連同頭信息一起發(fā)送給緩存服務(wù)器,頭信息中包含有關(guān)緩存的重要信息,例如這個(gè)對(duì)象是否能夠緩存、可緩存時(shí)間等。如果該項(xiàng)對(duì)象可被緩存、就在緩存內(nèi)在服務(wù)器中存一份拷貝,以便下一本地用戶要訪問(wèn)同一Web對(duì)象時(shí),可直接到本地的緩存服務(wù)器中獲得,從而減少重復(fù)數(shù)據(jù)的遠(yuǎn)程傳輸,加快了用戶訪問(wèn)Internet的速度。不過(guò)當(dāng)有新的請(qǐng)求到來(lái)時(shí),Web緩存服務(wù)器會(huì)檢查緩存對(duì)象的存儲(chǔ)時(shí)間,同時(shí)利用收到頭信息來(lái)判斷緩存內(nèi)容是否過(guò)期、或判斷緩存內(nèi)容自上次請(qǐng)求后是否更改,將更新的信息實(shí)時(shí)發(fā)給用戶,這樣保證了實(shí)時(shí)刷新,用戶得到的都是新鮮的數(shù)據(jù)。
緩存服務(wù)器分為主動(dòng)模式和被動(dòng)模式兩種。
(1)采用主動(dòng)模式。根據(jù)事先設(shè)置的策略預(yù)先把要訪問(wèn)站點(diǎn)的內(nèi)容緩存到本地、用戶獲得的數(shù)據(jù)都是已經(jīng)緩存的內(nèi)容,但不一定是原始服務(wù)器最新的內(nèi)容。這種方式類似鏡像功能,一些企事業(yè)單位為使內(nèi)外網(wǎng)隔離常采用這種方式,作到了既能訪問(wèn)Internet的內(nèi)容,又保證了內(nèi)部網(wǎng)的安全。
(2)采用被動(dòng)模式。在用戶請(qǐng)求時(shí),緩存服務(wù)器才代理用戶向原始服務(wù)器請(qǐng)求,并且進(jìn)行緩存,供下一個(gè)訪問(wèn)的用戶使用。在每次用戶請(qǐng)求時(shí),緩存服務(wù)器都會(huì)與原始服務(wù)器比較,如果原始服務(wù)器的內(nèi)容與緩存內(nèi)容不一致,就更新部分的數(shù)據(jù);如果原始服務(wù)器的內(nèi)容與緩存的內(nèi)容沒(méi)有發(fā)生變化,就直接在本地緩存服務(wù)器中發(fā)送給用戶服務(wù),這樣可以大大減少已有數(shù)據(jù)的重復(fù)傳送。隨著Internet的快速發(fā)展,實(shí)時(shí)性就顯得越來(lái)越重要,所以對(duì)于緩存服務(wù)器最好采用被動(dòng)模式。
緩存服務(wù)器根據(jù)加速對(duì)象的不同,又分為正向代理和反向代理兩種方式。通常把加速內(nèi)部網(wǎng)用戶對(duì)外部網(wǎng)絡(luò)的訪問(wèn)速度稱為正向代理,正向代理的緩存服務(wù)器牌網(wǎng)絡(luò)中網(wǎng)關(guān)的位置,靠近客戶端,為所有的用戶提供緩存服務(wù),這是大多數(shù)用戶使用的模式。如果緩存服務(wù)器用于加速Web站點(diǎn),一般稱為反向代理或反向加速,它處于服務(wù)提供商一方,靠近服務(wù)器的一端,用戶的請(qǐng)求主要通過(guò)高速緩存服務(wù)獲得,此時(shí)的緩存服務(wù)器類似一臺(tái)Web服務(wù)器,也是TCP80端口接受HTTP請(qǐng)求。
由于緩存服務(wù)器I/O操作的運(yùn)行機(jī)制與Web服務(wù)器不一樣,性能要遠(yuǎn)高于Web服務(wù)器,所以可以通過(guò)采用反向加速、降低Web服務(wù)器的負(fù)荷等方法,提高Web服務(wù)的響應(yīng)速度,增加網(wǎng)站流量。
五、流量管理方法
流量管理方法包括在局域網(wǎng)和廣域網(wǎng)兩種情況下管理網(wǎng)絡(luò)的流量,簡(jiǎn)而言之,就是充分利用服務(wù)器和網(wǎng)絡(luò)帶寬的資源,使網(wǎng)站達(dá)到智能流量管理的方式。其中,要體現(xiàn)高可用性(HA,即網(wǎng)站的任何一個(gè)故障而使網(wǎng)站無(wú)法訪問(wèn))、高可靠性(HR,即網(wǎng)站的任何一個(gè)都可以屏蔽掉)、高性能(HP,即讓網(wǎng)站直正的智能管理)。
網(wǎng)絡(luò)流理應(yīng)用主要表面4個(gè)方面:服務(wù)器群集系統(tǒng)、網(wǎng)絡(luò)大型緩存CACHE系統(tǒng)、網(wǎng)絡(luò)安全系統(tǒng)群集(防火墻或VPN設(shè)備),以及保證多個(gè)Internet ISP接入鏈路。
現(xiàn)在用戶瀏覽信息時(shí),大多是通過(guò)登錄服務(wù)方的Web網(wǎng)頁(yè)來(lái)實(shí)現(xiàn)的,無(wú)論是瀏覽網(wǎng)頁(yè)上簡(jiǎn)單文本信息還是瀏覽通過(guò)數(shù)據(jù)庫(kù)服務(wù)器所提供的復(fù)雜信息,最終都是要通過(guò)Web服務(wù)器來(lái)實(shí)現(xiàn)的。再加上現(xiàn)在的網(wǎng)頁(yè)大多為動(dòng)態(tài)更新網(wǎng)頁(yè),導(dǎo)致Web服務(wù)器的負(fù)擔(dān)不斷加重。正因如此,研究提高Web服務(wù)器工作性能的技術(shù)和方法就顯得頗具現(xiàn)實(shí)意義。對(duì)網(wǎng)管人員來(lái)說(shuō),也要在現(xiàn)有條件下運(yùn)用提高Web服務(wù)器的技術(shù)和方法,發(fā)揮現(xiàn)有設(shè)備的工作能力,轉(zhuǎn)變只要慢就買新的“一換了之”的思維方式和做法。[e]
(江蘇省金壇市職業(yè)教育中心 213200)