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