專利名稱:用于實(shí)現(xiàn)集群服務(wù)器內(nèi)負(fù)載分擔(dān)代理的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算才幾應(yīng)用以及通訊領(lǐng)域,更具體地,涉及用于實(shí) 現(xiàn)集群服務(wù)器內(nèi)負(fù)載分擔(dān)代理的方法。
背景技術(shù):
Internet的快速增長4吏各種網(wǎng)絡(luò)力良務(wù)器,通訊服務(wù)器,面對的訪 問者數(shù)量快速增加,服務(wù)器變得不勝負(fù)荷,如果無法及時處理大量 的用戶服務(wù)請求,那么服務(wù)器將出現(xiàn)中斷的情況。以往在解決這些 問題的方法是采用更強(qiáng)計(jì)算能力的服務(wù)器來替換原來的服務(wù)器,即 使這樣,單臺服務(wù)器的負(fù)載能力也是有限的,不可能無限擴(kuò)展,同 時,高檔服務(wù)器的價格是隨著服務(wù)器的性能呈現(xiàn)指數(shù)型上升,因此, 采用多臺廉價服務(wù)器組成負(fù)載分擔(dān)的系統(tǒng)模型日漸成為主流,從而 擴(kuò)展出了負(fù)載分擔(dān)技術(shù)。負(fù)載分擔(dān)系統(tǒng)主要是將集中在一臺服務(wù)器 上的用戶服務(wù)請求分發(fā)到多臺服務(wù)器上。在負(fù)載分擔(dān)方式出現(xiàn)的初 期,有不少網(wǎng)絡(luò)的i殳計(jì)采用域名4侖轉(zhuǎn)的方式,即是一個域名對應(yīng)多 臺服務(wù)器,作為一種廉價的方案,域名輪轉(zhuǎn)的方式可以解決一些月l無法根據(jù)各臺服務(wù)器的負(fù)載情況,將用戶服務(wù)請求發(fā)送到不同的服 務(wù)器上;在其中一臺服務(wù)器出現(xiàn)問題無法工作的時候,系統(tǒng)仍然會 將用戶訪問請求發(fā)送到出現(xiàn)故障的月l務(wù)器上,造成一部分服務(wù)的中 斷;由于域名解釋一^:在各地的服務(wù)器上都會有Cache存在,因此 會造成一個地區(qū)的用戶訪問請求將集中在同一臺服務(wù)器上。因而實(shí) 際上,釆用域名4侖轉(zhuǎn)的方式來做系統(tǒng)負(fù)載分擔(dān),其效果并不明顯。因此,針對不同4吏用對象,負(fù)載分擔(dān)技術(shù)大概分為四種模式DNS、代理服務(wù)器、地址轉(zhuǎn)換網(wǎng)關(guān)以及協(xié)議內(nèi)部支持,高級服務(wù)器 應(yīng)用中代理H務(wù)器應(yīng)用得最為廣泛,因此這里重點(diǎn)分析代理服務(wù)器 的現(xiàn)有技術(shù)背景。使用代理服務(wù)器,可以將請求轉(zhuǎn)發(fā)給內(nèi)部的服務(wù)器,使用這種 加速模式顯然可以提升訪問速度,代理服務(wù)器將請求均勻轉(zhuǎn)發(fā)給多 臺月l務(wù)器,,人而達(dá)到負(fù)載均纟lf的目的。這種代理方式與普通的^戈理 方式有所不同,標(biāo)準(zhǔn)^^理方式是客戶^吏用代理訪問多個外部服務(wù)器, 而這種代理方式是代理多個客戶訪問內(nèi)部服務(wù)器,因此也被稱為反 向代理模式。雖然實(shí)現(xiàn)這個任務(wù)并不算是特別復(fù)雜,然而由于要求 特別高的效率,實(shí)現(xiàn)起來并不簡單。使用反向代理的好處是,可以 將負(fù)載均衡和代理服務(wù)器的高速緩存技術(shù)結(jié)合在一起,提供有益的 性能。這種代理服務(wù)器本身雖然可以達(dá)到很高效率,但是針對每一 次代理,代理"l務(wù)器就必須維護(hù)兩個連接, 一個對外的連接, 一個 對內(nèi)的連接,因此特別高的連接請求,代理服務(wù)器的負(fù)載也就非常 之大。反向代理方式下能應(yīng)用優(yōu)化的負(fù)載均衡策略,每次訪問最空 閑的內(nèi)部服務(wù)器來提供服務(wù)。但是隨著并發(fā)連接數(shù)量的增加,代理 服務(wù)器本身的負(fù)載也變得非常大,最后反向代理服務(wù)器本身會成為服務(wù)的瓶頸。而現(xiàn)在更為先進(jìn)的代理月l務(wù)器加入了許多算法,如流量負(fù)載分 擔(dān)方法。這種代理力l務(wù)器會在每次發(fā)送數(shù)據(jù)包給力l務(wù)器之前,預(yù)先 計(jì)算出每條鏈路通道發(fā)送數(shù)據(jù)包所需的時間;然后選擇出發(fā)送時間 最短的通道,用該通道發(fā)送當(dāng)前凄t據(jù)包。這種流量負(fù)載分擔(dān)方法才艮 據(jù)通道的繁忙程度動態(tài)選擇鏈路,可應(yīng)用于與凄t據(jù)通訊設(shè)備不同層 次、不同應(yīng)用的流量負(fù)載分擔(dān),但這種流量負(fù)載分擔(dān)也有不足之處, 如客戶端對服務(wù)器的請求數(shù)據(jù)不可能每次都相同,經(jīng)過代理服務(wù) 器找到的服務(wù)器每次都不一樣,這樣根本就保證不了客戶端與服務(wù) 器會話的一致性,而且,由于客戶端每次請求服務(wù)器,代理服務(wù)器都要為之進(jìn)行流量計(jì)算,這樣即浪費(fèi)了很多的時間,又浪費(fèi)了大量 的代理服務(wù)器資源,從而造成代理服務(wù)器的負(fù)荷較大。發(fā)明內(nèi)容考慮到上述問題而做出本發(fā)明,為此,本發(fā)明的主要目的在于, 提供一種用于實(shí)現(xiàn)集群服務(wù)器內(nèi)負(fù)載分擔(dān)代理的方法。根據(jù)本發(fā)明的用于實(shí)現(xiàn)集群服務(wù)器內(nèi)負(fù)載分擔(dān)代理的方法,包括以下步驟客戶端向代理服務(wù)器發(fā)送節(jié)點(diǎn)服務(wù)器選擇請求;代理 服務(wù)器根據(jù)集群服務(wù)器的負(fù)載情況,向客戶端返回可選的節(jié)點(diǎn)服務(wù) 器的列表;以及客戶端通過與代理服務(wù)器進(jìn)行負(fù)載分擔(dān)算法協(xié)商, 根據(jù)可選的節(jié)點(diǎn)服務(wù)器的列表,確定選擇的節(jié)點(diǎn)服務(wù)器,并與選擇 的節(jié)點(diǎn)服務(wù)器直接建立連接,直到客戶端與節(jié)點(diǎn)服務(wù)器間會話結(jié)束。此外,在該方法中,可選的節(jié)點(diǎn)服務(wù)器的列表中的節(jié)點(diǎn)服務(wù)器 分成與客戶端相對應(yīng)的一個最優(yōu)節(jié)點(diǎn)月l務(wù)器和一個或多個次優(yōu)節(jié)點(diǎn) 服務(wù)器。此外,在該方法中,f^理力l務(wù)器才艮據(jù)客戶端的i青求和流量進(jìn)4亍 計(jì)算,以分析各個節(jié)點(diǎn)服務(wù)器的負(fù)載情況,找到最優(yōu)節(jié)點(diǎn)服務(wù)器。此外,在該方法中,客戶端首先與最優(yōu)節(jié)點(diǎn)服務(wù)器連接,如果 與最優(yōu)節(jié)點(diǎn)服務(wù)器的連接出現(xiàn)異常,則客戶端與 一個或多個次優(yōu)節(jié) 點(diǎn)服務(wù)器中的一個連接。此外,在該方法中,客戶端自主選4奪一個或多個次優(yōu)節(jié)點(diǎn)月良務(wù) 器中的一個進(jìn)行連接。而同時客戶端根據(jù)客戶端的情況決定代理服 務(wù)器使用的負(fù)載分擔(dān)算法。通過本發(fā)明,由于采取了最優(yōu)服務(wù)器節(jié)點(diǎn)和次優(yōu)服務(wù)器節(jié)點(diǎn)均 提供給客戶端的負(fù)載分擔(dān)代理方法,增強(qiáng)了集群服務(wù)器的對外穩(wěn)定 性,且代理服務(wù)器不轉(zhuǎn)發(fā)客戶端和服務(wù)器間的應(yīng)用數(shù)據(jù),代理;]良務(wù) 器不容易出現(xiàn)網(wǎng)絡(luò)瓶頸??蛻舳送ㄟ^與代理服務(wù)器間進(jìn)行負(fù)載分擔(dān) 算法協(xié)商機(jī)制,充分提高了選擇的靈活性;最后客戶端和服務(wù)器間 一次會話的數(shù)據(jù)交換均同 一個服務(wù)器節(jié)點(diǎn)間,4呆證了客戶端與月良務(wù)器間同 一會話^:據(jù)的 一致性。本發(fā)明的其它特征和優(yōu)點(diǎn)將在隨后的說明書中闡述,并且,部 分地從說明書中變得顯而易見,或者通過實(shí)施本發(fā)明而了解。本發(fā) 明的目的和其他優(yōu)點(diǎn)可通過在所寫的說明書、 一又利要求書、以及附 圖中所特別指出的結(jié)構(gòu)來實(shí)現(xiàn)和獲得。
附圖用來提供對本發(fā)明的進(jìn)一步理解,并且構(gòu)成說明書的一部 分,與本發(fā)明的實(shí)施例一起用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的 限制。在附圖中圖1是示出了根據(jù)本發(fā)明實(shí)施例的用于實(shí)現(xiàn)集群服務(wù)器內(nèi)負(fù)載 分擔(dān)代理的方法的流程圖;圖2是示出了根據(jù)本發(fā)明實(shí)施例的客戶端、代理服務(wù)器、集群 服務(wù)器之間的關(guān)系圖;圖3是示出了根據(jù)本發(fā)明實(shí)施例的負(fù)載分擔(dān)代理的正常流程 圖;以及圖4是示出了才艮據(jù)本發(fā)明實(shí)施例的負(fù)載分擔(dān)代理的異常流程圖。
具體實(shí)施方式
以下結(jié)合附圖對本發(fā)明的優(yōu)選實(shí)施例進(jìn)行it明,應(yīng)當(dāng)理解,此 處所描述的優(yōu)選實(shí)施例僅用于說明和解釋本發(fā)明,并不用于限定本 發(fā)明。本發(fā)明是為了解決在使用代理服務(wù)器的情況下,提高客戶端、 代理服務(wù)器、集群服務(wù)器之間的可靠性、協(xié)商性、靈活性和會話一 致性。在集群服務(wù)環(huán)境內(nèi),每個節(jié)點(diǎn)服務(wù)器均具備相同的功能,客戶 端通過代理服務(wù)器與集群環(huán)境內(nèi)的節(jié)點(diǎn)服務(wù)器進(jìn)行連接。代理服務(wù) 器根據(jù)客戶端的請求和流量進(jìn)行計(jì)算,分析各節(jié)點(diǎn)服務(wù)器的負(fù)載情況,找到最為合適的節(jié)點(diǎn)服務(wù)器,此時,節(jié)點(diǎn)服務(wù)器、代理服務(wù)器、 客戶端進(jìn)行協(xié)商,只要客戶端不主動斷開與節(jié)點(diǎn)月良務(wù)器的連接,該 客戶端就可以不通過代理服務(wù)器,直接與該節(jié)點(diǎn)服務(wù)器進(jìn)行通訊。圖1是示出了才艮據(jù)本發(fā)明實(shí)施例的用于實(shí)現(xiàn)集群服務(wù)器內(nèi)負(fù)載 分4旦4戈理的方法的流禾呈圖。如圖l所示,包4舌以下步-驟步-驟S102,客戶端向^t理"l務(wù)器 發(fā)送節(jié)點(diǎn)服務(wù)器選擇請求;步驟S104,代理服務(wù)器根據(jù)集群服務(wù)器 的負(fù)載情況,向客戶端返回可選的節(jié)點(diǎn)服務(wù)器的列表;以及步驟 S106,客戶端通過與代理月良務(wù)器進(jìn)4亍負(fù)載分擔(dān)算法協(xié)商,根據(jù)可選 的節(jié)點(diǎn)服務(wù)器的列表,確定選擇的節(jié)點(diǎn)服務(wù)器,并與選擇的節(jié)點(diǎn)服 務(wù)器直接建立連4婁,直到客戶端與節(jié)點(diǎn)服務(wù)器間會話結(jié)束。此外,在該方法中,可選的節(jié)點(diǎn)服務(wù)器的列表中的節(jié)點(diǎn)服務(wù)器 分成與客戶端相對應(yīng)的一個最優(yōu)節(jié)點(diǎn)服務(wù)器和一個或多個次優(yōu)節(jié)點(diǎn) 服務(wù)器。此外,在該方法中,代理服務(wù)器根據(jù)客戶端的請求和流量進(jìn)4亍 計(jì)算,以分析各個節(jié)點(diǎn)服務(wù)器的負(fù)載情況,找到最優(yōu)節(jié)點(diǎn)服務(wù)器。此外,在該方法中,客戶端首先與最優(yōu)節(jié)點(diǎn)服務(wù)器連接,如果 與最優(yōu)節(jié)點(diǎn)服務(wù)器的連接出現(xiàn)異常,則客戶端與 一個或多個次優(yōu)節(jié) 點(diǎn)服務(wù)器中的一個連接。此外,在該方法中,客戶端自主選擇一個或多個次優(yōu)節(jié)點(diǎn)月良務(wù) 器中的一個進(jìn)行連接。而同時客戶端根據(jù)客戶端的情況決定代理月良 務(wù)器使用的負(fù)載分擔(dān)算法。圖2是示出了根據(jù)本發(fā)明實(shí)施例的客戶端、代理服務(wù)器、集群 服務(wù)器之間的關(guān)系圖。如圖2所示,客戶端通過代理服務(wù)器獲耳又沖是供服務(wù)的服務(wù)器節(jié) 點(diǎn),并與節(jié)點(diǎn)服務(wù)器間直接進(jìn)行連接。圖3是示出了才艮據(jù)本發(fā)明實(shí)施例的負(fù)載分擔(dān)代理的正常流程 圖。以及圖4是示出了根據(jù)本發(fā)明實(shí)施例的負(fù)載分擔(dān)代理的異常流程圖。結(jié)合圖3和圖4進(jìn)行詳細(xì)描述,客戶端發(fā)起連接請求,代理服 務(wù)器分析集群內(nèi)部節(jié)點(diǎn)服務(wù)器的負(fù)載情況,通知客戶端可以連接的 服務(wù)器節(jié)點(diǎn),客戶端獲得連接許可,與節(jié)點(diǎn)服務(wù)器建立連接并進(jìn)行 通信。如果服務(wù)器節(jié)點(diǎn)不可用,或服務(wù)器節(jié)點(diǎn)中途出現(xiàn)異常,整個 工^乍流禾呈又重新乂人第三步開始。以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明, 對于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在 本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等, 均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種用于實(shí)現(xiàn)集群服務(wù)器內(nèi)負(fù)載分擔(dān)代理的方法,其特征在于,包括以下步驟客戶端向代理服務(wù)器發(fā)送節(jié)點(diǎn)服務(wù)器選擇請求;所述代理服務(wù)器根據(jù)所述集群服務(wù)器的負(fù)載情況,向所述客戶端返回可選的節(jié)點(diǎn)服務(wù)器的列表;以及所述客戶端通過與所述代理服務(wù)器進(jìn)行負(fù)載分擔(dān)算法協(xié)商,根據(jù)所述可選的節(jié)點(diǎn)服務(wù)器的列表,確定選擇的節(jié)點(diǎn)服務(wù)器,并與所述選擇的節(jié)點(diǎn)服務(wù)器直接建立連接,直到所述客戶端與所述節(jié)點(diǎn)服務(wù)器間會話結(jié)束。
2. 才艮據(jù)片又利要求1所述的方法,其特征在于,所述可選的節(jié)點(diǎn)月l 務(wù)器的列表中的節(jié)點(diǎn)^務(wù)器分成與所述客戶端相對應(yīng)的一個 最優(yōu)節(jié)點(diǎn)服務(wù)器和一個或多個次優(yōu)節(jié)點(diǎn)服務(wù)器。
3. 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述代理服務(wù)器根 據(jù)所述客戶端的所述請求和流量進(jìn)行計(jì)算,以分析各個所述節(jié) 點(diǎn)服務(wù)器的負(fù)載情況,找到所述最優(yōu)節(jié)點(diǎn)服務(wù)器。
4. 4艮據(jù)權(quán)利要求2所述的方法,其特征在于,所述客戶端首先與 所述最優(yōu)節(jié)點(diǎn)服務(wù)器連接,如果與所述最優(yōu)節(jié)點(diǎn)服務(wù)器的連接 出現(xiàn)異常,則所述客戶端與所述一個或多個次優(yōu)節(jié)點(diǎn)服務(wù)器中 的一個連接。
5. 才艮據(jù)^又利要求4所述的方法,其特征在于,所述客戶端自主選 擇所述一個或多個次優(yōu)節(jié)點(diǎn)服務(wù)器中的一個進(jìn)行連接。
6. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述客戶端才艮據(jù)所述客戶端的情況決定所述代理服務(wù)器〗吏用的所述負(fù)載分擔(dān)算 法。
全文摘要
本發(fā)明公開了用于實(shí)現(xiàn)集群服務(wù)器內(nèi)負(fù)載分擔(dān)代理的方法,包括以下步驟客戶端向代理服務(wù)器發(fā)送節(jié)點(diǎn)服務(wù)器選擇請求;代理服務(wù)器根據(jù)集群服務(wù)器的負(fù)載情況,向客戶端返回可選的節(jié)點(diǎn)服務(wù)器的列表;以及客戶端通過與代理服務(wù)器進(jìn)行負(fù)載分擔(dān)算法協(xié)商,根據(jù)可選的節(jié)點(diǎn)服務(wù)器的列表,確定選擇的節(jié)點(diǎn)服務(wù)器,并與選擇的節(jié)點(diǎn)服務(wù)器直接建立連接,直到客戶端與節(jié)點(diǎn)服務(wù)器間會話結(jié)束。通過本發(fā)明,由于采取了最優(yōu)服務(wù)器節(jié)點(diǎn)和次優(yōu)服務(wù)器節(jié)點(diǎn)均提供給客戶端的負(fù)載分擔(dān)代理方法,增強(qiáng)了集群服務(wù)器的對外穩(wěn)定性,且代理服務(wù)器不轉(zhuǎn)發(fā)客戶端和服務(wù)器間的應(yīng)用數(shù)據(jù),代理服務(wù)器不容易出現(xiàn)網(wǎng)絡(luò)瓶頸。
文檔編號H04L12/56GK101217483SQ20081000422
公開日2008年7月9日 申請日期2008年1月21日 優(yōu)先權(quán)日2008年1月21日
發(fā)明者戴孟晉, 馬 方, 米麗婭 申請人:中興通訊股份有限公司