專利名稱:一種在應(yīng)用層交換中提高服務(wù)器響應(yīng)速度的系統(tǒng)及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種網(wǎng)絡(luò)服務(wù)器響應(yīng)速度的技術(shù),特別是指一種在應(yīng)用層交換中加速服務(wù)器響應(yīng)速度的系統(tǒng)及其實(shí)現(xiàn)方法。
如
圖1所示,其工作原理是根據(jù)一個(gè)數(shù)據(jù)流的第一個(gè)報(bào)文和所設(shè)置的負(fù)載均衡策略選擇一個(gè)真實(shí)的服務(wù)器,對于該流的后續(xù)報(bào)文則根據(jù)其五元組(源目的地址、源目的端口號(hào)和協(xié)議號(hào))來進(jìn)行轉(zhuǎn)發(fā),使得同一個(gè)流的報(bào)文始終由同一個(gè)服務(wù)器來處理。由于采用負(fù)載均衡策略,交換機(jī)可以根據(jù)服務(wù)器的忙閑狀況或運(yùn)行處理速度快慢等因素,全面考慮該數(shù)據(jù)流的分配方向。故此,該技術(shù)能夠有效地完成不同服務(wù)器之間的流量分擔(dān),使得服務(wù)器的擴(kuò)充十分容易。
但是在這種工作模式下,要求每臺(tái)服務(wù)器都能提供用戶所有要訪問的內(nèi)容,造成了大量的冗余;同時(shí),所有服務(wù)器所存儲(chǔ)的內(nèi)容的同步也需要額外進(jìn)行考慮,因此出現(xiàn)了應(yīng)用層交換技術(shù)。
應(yīng)用層交換技術(shù)就是根據(jù)連接中的應(yīng)用層信息,比如統(tǒng)一資源定位(URL)、Cookie等信息來進(jìn)行交換,可以實(shí)現(xiàn)將不同內(nèi)容的請求導(dǎo)向到不同的服務(wù)器上,從而實(shí)現(xiàn)不同內(nèi)容的獨(dú)立維護(hù)。例如靜態(tài)的超文本鏈接標(biāo)示語言(HTML)頁面可以存貯在速度慢但容量大的服務(wù)器上,而動(dòng)態(tài)生成的計(jì)算機(jī)圖形接口(CGI)頁面則由速度快的服務(wù)器來進(jìn)行處理。如圖2所示,至少包括三個(gè)服務(wù)器組,文件數(shù)據(jù)可以分類由不同的服務(wù)器組進(jìn)行處理,比如jpg類文件和gif類圖形文件可由服務(wù)器組1處理;bin類文件、cgi類圖形接口文件以及exe類執(zhí)行文件可由服務(wù)器組2處理;而html類文件數(shù)據(jù)則由服務(wù)器組3處理。
由于連接建立過程中的報(bào)文中并不包含有應(yīng)用層信息,所以在服務(wù)器與客戶端建立連接時(shí),交換機(jī)必須先冒充服務(wù)器與客戶建立連接,得到應(yīng)用層信息之后,才能確定將該連接請求發(fā)送給哪一個(gè)真實(shí)的服務(wù)器,然后,交換機(jī)再與此真實(shí)服務(wù)器建立連接,轉(zhuǎn)發(fā)客戶的請求。因此,該工作過程的實(shí)際處理流程如圖3所示1)首先,由交換機(jī)冒充服務(wù)器接收客戶端所發(fā)的TCP同步信號(hào)TCPSYN,該信號(hào)表示客戶請求建立一個(gè)TCP連接;然后,交換機(jī)替代服務(wù)器向客戶端回送同步應(yīng)答信號(hào)SYN ACK,確認(rèn)連接建立;客戶端收到SYNACK之后,再向冒充服務(wù)器--交換機(jī)送一個(gè)收到確認(rèn)的信號(hào)ACK;經(jīng)過上述三次握手之后,連接建立,客戶端即發(fā)送應(yīng)用層請求給冒充服務(wù)器--交換機(jī)。
2)當(dāng)交換機(jī)收到客戶發(fā)的應(yīng)用層請求后,從請求中提出應(yīng)用層信息,以確定客戶的該請求實(shí)際應(yīng)該發(fā)給哪個(gè)真實(shí)的服務(wù)器,然后交換機(jī)向目的服務(wù)器發(fā)TCP同步信號(hào)TCP SYN,請求建立一個(gè)TCP連接;該服務(wù)器向交換機(jī)回送同步應(yīng)答信號(hào)SYN ACK,確認(rèn)連接建立;交換機(jī)收到SYN ACK之后,再向目的服務(wù)器送一個(gè)收到確認(rèn)的信號(hào)ACK;經(jīng)過握手后,連接建立,交換機(jī)即將客戶端發(fā)出的應(yīng)用層請求轉(zhuǎn)發(fā)給目的服務(wù)器,而后,客戶端即可與真實(shí)的目的服務(wù)器直接通信,發(fā)送數(shù)據(jù)。
該方法的優(yōu)點(diǎn)在于可以將不同的內(nèi)容放置在不同的服務(wù)器上,提高了服務(wù)器的利用率,并且對特定的內(nèi)容只要在少數(shù)幾臺(tái)服務(wù)器之間進(jìn)行同步刷新,便于進(jìn)行內(nèi)容的維護(hù)。但從圖上可以看出,由于每次根據(jù)應(yīng)用層信息選中一個(gè)真實(shí)的服務(wù)器之后需要實(shí)時(shí)地發(fā)起與真實(shí)服務(wù)器的連接,這樣,客戶端發(fā)出應(yīng)用層請求之后,需要等待交換機(jī)冒充客戶與服務(wù)器建立連接,并轉(zhuǎn)發(fā)服務(wù)器所回應(yīng)的應(yīng)答,因而得到服務(wù)器響應(yīng)的時(shí)間大大增加,不能夠滿足提高用戶訪問速度的要求。
本發(fā)明的另一目的在于提供一種在應(yīng)用層交換中提高服務(wù)器響應(yīng)速度的方法,使其能大大縮短客戶端與服務(wù)器之間連接建立的時(shí)間,快速地轉(zhuǎn)發(fā)應(yīng)用層請求,從而使得服務(wù)器的響應(yīng)時(shí)間明顯縮短,進(jìn)而提高對用戶的服務(wù)質(zhì)量。
本發(fā)明的技術(shù)方案具體是這樣實(shí)現(xiàn)的一種在應(yīng)用層交換中提高服務(wù)器響應(yīng)速度的系統(tǒng),至少包括用于內(nèi)容識(shí)別和報(bào)文交換的URL識(shí)別模塊;用于檢測所連接服務(wù)器的健康狀況和負(fù)載程度的服務(wù)器健康性檢測模塊;用于實(shí)現(xiàn)交換機(jī)冒充服務(wù)器接收客戶端所發(fā)信號(hào)的TCP哄騙模塊;關(guān)鍵在于還包括一個(gè)服務(wù)器端連接儲(chǔ)備模塊,用來預(yù)先與服務(wù)器建立連接,并通過已建立好的連接對服務(wù)器的健康狀況和負(fù)載程度進(jìn)行檢測;服務(wù)器端連接儲(chǔ)備模塊同時(shí)連接服務(wù)器健康性檢測模塊、TCP哄騙模塊和服務(wù)器端口處理模塊;TCP哄騙模塊還同時(shí)與URL識(shí)別模塊及客戶端口處理模塊相連。
所述的與服務(wù)器建立連接是與每一臺(tái)服務(wù)器建立一個(gè)以上的連接。該服務(wù)器端連接儲(chǔ)備模塊根據(jù)每臺(tái)服務(wù)器健康狀況的檢測結(jié)果預(yù)先設(shè)置該服務(wù)器連接儲(chǔ)備數(shù)目的閾值。所述的服務(wù)器健康狀況檢測是指檢測目的服務(wù)器是否可用。
一種在應(yīng)用層交換中提高服務(wù)器響應(yīng)速度的方法,該方法至少包括以下的步驟a.由應(yīng)用層交換系統(tǒng)中的服務(wù)器連接儲(chǔ)備模塊與每臺(tái)服務(wù)器建立連接;b.當(dāng)客戶端發(fā)起請求時(shí),交換機(jī)首先與客戶端建立連接,在收到客戶端發(fā)送的應(yīng)用層請求之后,從應(yīng)用層請求中提取出應(yīng)用層信息,確定該客戶所選定的目的服務(wù)器,然后利用與該目的服務(wù)器已建立好的連接轉(zhuǎn)發(fā)客戶端信息給服務(wù)器,并將服務(wù)器的應(yīng)答轉(zhuǎn)發(fā)給客戶。
所述服務(wù)器連接儲(chǔ)備模塊與服務(wù)器建立連接進(jìn)一步包括以下步驟a.與每一臺(tái)服務(wù)器建立一個(gè)以上的連接,之后等待定時(shí)器事件的觸發(fā);b.對每一臺(tái)服務(wù)器進(jìn)行健康性檢測,根據(jù)健康狀況的檢測結(jié)果設(shè)定每一臺(tái)服務(wù)器連接儲(chǔ)備數(shù)目的閾值;c.實(shí)時(shí)檢測每臺(tái)服務(wù)器當(dāng)前的連接儲(chǔ)備數(shù)目是否低于預(yù)先設(shè)定的閾值,如果當(dāng)前檢測的服務(wù)器的連接儲(chǔ)備數(shù)目低于所設(shè)定的閾值,則服務(wù)器連接儲(chǔ)備模塊與該服務(wù)器建立一個(gè)以上的新連接,然后返回步驟c;否則,等待定時(shí)器事件觸發(fā),進(jìn)入步驟b。
所述的定時(shí)器事件是指定時(shí)檢查交換機(jī)與服務(wù)器之間的連接儲(chǔ)備情況。所述的連接儲(chǔ)備數(shù)目閾值小于所建立的連接數(shù)。所述的服務(wù)器健康狀況是指檢測目的服務(wù)器是否可用。所檢測的目的服務(wù)器不可用時(shí),連接儲(chǔ)備數(shù)目閾值設(shè)為零;所檢測的目的服務(wù)器可用時(shí),連接儲(chǔ)備數(shù)目閾值根據(jù)該服務(wù)器所能支持的連接數(shù)決定。
由上述技術(shù)方案可以看出,本發(fā)明的關(guān)鍵在于在現(xiàn)有的實(shí)現(xiàn)系統(tǒng)中添加一個(gè)服務(wù)器連接儲(chǔ)備模塊,從而建立一種交換機(jī)與服務(wù)器之間的連接儲(chǔ)備機(jī)制,使交換機(jī)預(yù)先與各服務(wù)器之間建立連接的儲(chǔ)備,通過這些連接儲(chǔ)備,交換機(jī)可以迅速地將客戶的應(yīng)用層請求轉(zhuǎn)發(fā)給特定的服務(wù)器進(jìn)行處理,從而縮短了服務(wù)器響應(yīng)時(shí)間。
通過本發(fā)明的方法,不僅能夠得到更快速的服務(wù)器響應(yīng),而且更容易實(shí)現(xiàn)服務(wù)器健康狀況及負(fù)載情況的檢測,提高了用戶服務(wù)質(zhì)量。
本發(fā)明主要應(yīng)用于一個(gè)應(yīng)用層交換系統(tǒng)中,如圖4所示,該系統(tǒng)至少包括用于內(nèi)容識(shí)別和報(bào)文交換的URL識(shí)別模塊;用于檢測所連接服務(wù)器的健康狀況和負(fù)載程度的服務(wù)器健康性檢測模塊;用來實(shí)現(xiàn)交換機(jī)冒充服務(wù)器接收客戶端所發(fā)信號(hào)的TCP哄騙模塊;重要的是,該系統(tǒng)還包括一個(gè)服務(wù)器端連接儲(chǔ)備模塊,用來事先與服務(wù)器建立連接,并通過這些連接對服務(wù)器的健康狀況和負(fù)載情況進(jìn)行檢測。其中,TCP哄騙模塊與客戶端口處理模塊相連,用來接收客戶信息;而服務(wù)器端連接儲(chǔ)備模塊與服務(wù)器端口處理模塊相連,用來建立與服務(wù)器間的連接,TCP哄騙模塊還與服務(wù)器端連接儲(chǔ)備模塊和URL識(shí)別模塊相連,服務(wù)器端連接儲(chǔ)備模塊還與服務(wù)器健康性檢測模塊相連。所傳輸?shù)膱?bào)文從客戶端口處理模塊進(jìn)入,經(jīng)過上述URL識(shí)別模塊、TCP哄騙模塊、服務(wù)器健康性檢測模塊以及服務(wù)器端連接儲(chǔ)備模決的識(shí)別、確認(rèn)、處理、確定導(dǎo)向后,從服務(wù)器端口處理模塊輸出至相應(yīng)的目的服務(wù)器。該系統(tǒng)既包括軟件的實(shí)現(xiàn)方式,也包括以硬件實(shí)現(xiàn)的方式,比如采用可編程邏輯處理芯片。
本發(fā)明中服務(wù)器連接儲(chǔ)備模塊具體的工作實(shí)現(xiàn)流程如圖5所示,至少包括以下的步驟a.服務(wù)器連接儲(chǔ)備模塊與每一臺(tái)服務(wù)器建立若干個(gè)連接,連接的數(shù)目可根據(jù)實(shí)際運(yùn)行情況或客戶對不同資源需求的比率而定,連接建立后作為儲(chǔ)備資源,當(dāng)交換機(jī)需要與某臺(tái)服務(wù)器建立連接時(shí),則提供一個(gè)相應(yīng)服務(wù)器的連接。連接建立好后,連接儲(chǔ)備模塊等待定時(shí)器事件的觸發(fā),該定時(shí)事件是用來定時(shí)檢查交換機(jī)與服務(wù)器之間的連接儲(chǔ)備情況。
b.對每一臺(tái)服務(wù)器進(jìn)行健康性實(shí)時(shí)檢測,并根據(jù)健康狀況的檢測結(jié)果來確定每一臺(tái)服務(wù)器連接儲(chǔ)備數(shù)目的閾值。其中,該閾值是指決定是否需要建立一批新連接的判斷基準(zhǔn)值,低于該值則需要馬上建立一批新連接,否則不需要;健康狀況檢測是指檢測每臺(tái)服務(wù)器是否可用,如果可用,則根據(jù)該服務(wù)器所能支持的連接數(shù)來確定閾值,如果不可用,則閾值設(shè)置為零;該儲(chǔ)備數(shù)目是指當(dāng)前已建立可供使用的連接的數(shù)目。
c.根據(jù)定時(shí)事件檢測結(jié)果判斷每一臺(tái)服務(wù)器的連接儲(chǔ)備數(shù)目是否已低于所設(shè)定的閾值,如果是,則與該服務(wù)器建立一批新連接,以備使用,然后回到步驟c;否則,仍等待定時(shí)器事件的觸發(fā),進(jìn)入步驟b。
通過上述模塊結(jié)構(gòu)及其工作流程,交換機(jī)即可與服務(wù)器預(yù)先建立的一系列連接,交換機(jī)可以及時(shí)獲知服務(wù)器的健康狀況和負(fù)載程度,從而可以確定最適合處理請求的服務(wù)器,更重要的是由于交換機(jī)儲(chǔ)備了與服務(wù)器的連接,所以在確定真實(shí)服務(wù)器之后,客戶的應(yīng)用層請求就可以通過已經(jīng)建立的連接立即發(fā)送給真實(shí)服務(wù)器,而無需長時(shí)間的等待。其處理流程參見圖6所示1)首先,交換機(jī)發(fā)TCP SYN信號(hào)給服務(wù)器,經(jīng)過服務(wù)器回應(yīng)的SYNACK信號(hào)以及交換機(jī)收到SYN ACK后回復(fù)的ACK信號(hào),使交換機(jī)可與每一臺(tái)服務(wù)器建立多個(gè)連接;2)然后,當(dāng)有客戶提出連接請求和應(yīng)用層請求時(shí),只需要經(jīng)過與交換機(jī)之間的握手、確認(rèn),交換機(jī)便可立即將用戶的應(yīng)用層請求通過已有的連接轉(zhuǎn)發(fā)給服務(wù)器。
可見,交換機(jī)得到客戶的應(yīng)用層請求之后,能馬上通過預(yù)先建立的連接將請求轉(zhuǎn)發(fā)到選定的服務(wù)器,并將服務(wù)器的應(yīng)答轉(zhuǎn)發(fā)給客戶,中間省去了與服務(wù)器三次握手建立連接的過程,因而大大提高了服務(wù)器對客戶的響應(yīng)時(shí)間。而且,交換機(jī)可以通過預(yù)先與服務(wù)器建立的連接事先檢測服務(wù)器的健康狀況和負(fù)載程度,如果所需連接的服務(wù)器健康狀況有問題,可在客戶提出請求時(shí)馬上告知,或是將請求導(dǎo)向其他有同等功能的服務(wù)器,從而避免浪費(fèi)客戶的時(shí)間,以保證為客戶提供最好的服務(wù)。
另外,交換機(jī)還可以根據(jù)實(shí)時(shí)檢測當(dāng)前服務(wù)器的負(fù)載情況,對客戶的請求進(jìn)行均橫分配,以保證能為客戶提供最快最好的服務(wù)。
權(quán)利要求
1.一種在應(yīng)用層交換中提高服務(wù)器響應(yīng)速度的系統(tǒng),至少包括用于內(nèi)容識(shí)別和報(bào)文交換的URL識(shí)別模塊;用于檢測所連接服務(wù)器的健康狀況和負(fù)載程度的服務(wù)器健康性檢測模塊;用于實(shí)現(xiàn)交換機(jī)冒充服務(wù)器接收客戶端所發(fā)信號(hào)的TCP哄騙模塊;其特征在于還包括一個(gè)服務(wù)器端連接儲(chǔ)備模塊,用來預(yù)先與服務(wù)器建立連接,并通過已建立好的連接對服務(wù)器的健康狀況和負(fù)載程度進(jìn)行檢測;服務(wù)器端連接儲(chǔ)備模塊同時(shí)連接服務(wù)器健康性檢測模塊、TCP哄騙模塊和服務(wù)器端口處理模塊;TCP哄騙模塊還同時(shí)與URL識(shí)別模塊及客戶端口處理模塊相連。
2.根據(jù)權(quán)利要求1所述的提高服務(wù)器響應(yīng)速度的系統(tǒng),其特征在于所述的與服務(wù)器建立連接是與每一臺(tái)服務(wù)器建立一個(gè)以上的連接。
3.根據(jù)權(quán)利要求1所述的提高服務(wù)器響應(yīng)速度的系統(tǒng),其特征在于所述的服務(wù)器端連接儲(chǔ)備模塊根據(jù)每臺(tái)服務(wù)器健康狀況的檢測結(jié)果預(yù)先設(shè)置該服務(wù)器連接儲(chǔ)備數(shù)目的閾值。
4.根據(jù)權(quán)利要求1所述的提高服務(wù)器響應(yīng)速度的系統(tǒng),其特征在于所述的服務(wù)器健康狀況檢測是指檢測目的服務(wù)器是否可用。
5.一種在應(yīng)用層交換中提高服務(wù)器響應(yīng)速度的方法,其特征在于該方法至少包括以下的步驟a.由應(yīng)用層交換系統(tǒng)中的服務(wù)器連接儲(chǔ)備模塊與每臺(tái)服務(wù)器建立連接;當(dāng)客戶端發(fā)起請求時(shí),交換機(jī)首先與客戶端建立連接,在收到客戶端發(fā)送的應(yīng)用層請求之后,從應(yīng)用層請求中提取出應(yīng)用層信息,確定該客戶所選定的目的服務(wù)器,然后利用與該目的服務(wù)器已建立好的連接轉(zhuǎn)發(fā)客戶端信息給服務(wù)器,并將服務(wù)器的應(yīng)答轉(zhuǎn)發(fā)給客戶。
6.根據(jù)權(quán)利要求5所述的提高服務(wù)器響應(yīng)速度的方法,其特征在于所述服務(wù)器連接儲(chǔ)備模塊與服務(wù)器建立連接進(jìn)一步包括以下步驟a.與每一臺(tái)服務(wù)器建立一個(gè)以上的連接,之后等待定時(shí)器事件的觸發(fā);b.對每一臺(tái)服務(wù)器進(jìn)行健康性檢測,根據(jù)健康狀況的檢測結(jié)果設(shè)定每一臺(tái)服務(wù)器連接儲(chǔ)備數(shù)目的閾值;c.實(shí)時(shí)檢測每臺(tái)服務(wù)器當(dāng)前的連接儲(chǔ)備數(shù)目是否低于預(yù)先設(shè)定的閾值,如果當(dāng)前檢測的服務(wù)器的連接儲(chǔ)備數(shù)目低于所設(shè)定的閾值,則服務(wù)器連接儲(chǔ)備模塊與該服務(wù)器建立一個(gè)以上的新連接,然后返回步驟c;否則,等待定時(shí)器事件觸發(fā),進(jìn)入步驟b。
7.根據(jù)權(quán)利要求6所述的提高服務(wù)器響應(yīng)速度的方法,其特征在于所述的連接儲(chǔ)備數(shù)目閾值小于所建立的連接數(shù)。
8.根據(jù)權(quán)利要求6所述的提高服務(wù)器響應(yīng)速度的方法,其特征在于所述的服務(wù)器健康狀況是指檢測目的服務(wù)器是否可用。
9.根據(jù)權(quán)利要求6或8所述的提高服務(wù)器響應(yīng)速度的方法,其特征在于所檢測的目的服務(wù)器不可用時(shí),連接儲(chǔ)備數(shù)目閾值設(shè)為零;所檢測的目的服務(wù)器可用時(shí),連接儲(chǔ)備數(shù)目閾值根據(jù)該服務(wù)器所能支持的連接數(shù)決定。
10.根據(jù)權(quán)利要求6所述的提高服務(wù)器響應(yīng)速度的方法,其特征在于所述的定時(shí)器事件是指定時(shí)檢查交換機(jī)與服務(wù)器之間的連接儲(chǔ)備情況。
全文摘要
本發(fā)明公開了一種在應(yīng)用層交換中提高服務(wù)器響應(yīng)速度的系統(tǒng),至少包括用于內(nèi)容識(shí)別和報(bào)文交換的URL識(shí)別模塊;用于檢測所連接服務(wù)器的健康狀況和負(fù)載程度的服務(wù)器健康性檢測模塊;用于實(shí)現(xiàn)交換機(jī)冒充服務(wù)器接收客戶端所發(fā)信號(hào)的TCP哄騙模塊;關(guān)鍵在于還包括一個(gè)服務(wù)器端連接儲(chǔ)備模塊,用來預(yù)先與服務(wù)器建立連接,并通過已建立好的連接對服務(wù)器的健康狀況和負(fù)載程度進(jìn)行檢測;服務(wù)器端連接儲(chǔ)備模塊同時(shí)連接服務(wù)器健康性檢測模塊、TCP哄騙模塊和服務(wù)器端口處理模塊。該系統(tǒng)能支持客戶端與服務(wù)器之間的快速連接及應(yīng)用層請求的轉(zhuǎn)發(fā),使得服務(wù)器的響應(yīng)時(shí)間大大降低。本發(fā)明同時(shí)還公開了一種在應(yīng)用層交換中提高服務(wù)器響應(yīng)速度的方法。
文檔編號(hào)G06F13/14GK1400535SQ0112373
公開日2003年3月5日 申請日期2001年7月26日 優(yōu)先權(quán)日2001年7月26日
發(fā)明者張儉鋒 申請人:華為技術(shù)有限公司