專利名稱:一種負(fù)載均衡方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信技術(shù)領(lǐng)域,特別是涉及一種負(fù)載均衡方法和裝置。
背景技術(shù):
隨著網(wǎng)絡(luò)業(yè)務(wù)量的提高、訪問量和數(shù)據(jù)流量的快速增長,現(xiàn)有網(wǎng)絡(luò)的各個(gè)核心部分的處理能力和計(jì)算強(qiáng)度也相應(yīng)地增大,使得單一的服務(wù)器設(shè)備無法承擔(dān)。為適應(yīng)以上場(chǎng)景,可以通過負(fù)載均衡技術(shù)將負(fù)載(工作任務(wù))平衡、分?jǐn)偟蕉?個(gè)操作單元上,從而共同完成工作任務(wù)。負(fù)載均衡技術(shù)建立在現(xiàn)有網(wǎng)絡(luò)結(jié)構(gòu)之上,能夠擴(kuò)展網(wǎng)絡(luò)設(shè)備和服務(wù)器的帶寬、增加吞吐量、加強(qiáng)網(wǎng)絡(luò)數(shù)據(jù)處理能力、提高網(wǎng)絡(luò)的靈活性和可用性。負(fù)載均衡技術(shù)中常用的算法包括輪詢調(diào)度算法和WLC (WeightedLeast-Connection,加權(quán)最小連接)調(diào)度算法,輪詢調(diào)度算法是一種無狀態(tài)調(diào)度,可以按照從I到η (服務(wù)器的總數(shù))的順序,將用戶的請(qǐng)求輪流分配給各個(gè)服務(wù)器,并在分配一遍后重新進(jìn)行輪流分配。算法非常簡(jiǎn)潔,無需記錄服務(wù)器的當(dāng)前連接的狀態(tài)。在實(shí)際應(yīng)用中,由于每臺(tái)服務(wù)器的配置不同,其處理能力也會(huì)不一樣,因此,WLC調(diào)度算法根據(jù)各個(gè)服務(wù)器的處理能力,為服務(wù)器分配相應(yīng)的權(quán)值,在調(diào)度新連接時(shí),將新接收到的服務(wù)請(qǐng)求發(fā)送給加權(quán)連接數(shù)最小或者響應(yīng)時(shí)間最短的服務(wù)器,盡可能地使服務(wù)器的已建立的連接數(shù)和其權(quán)值成比例。具體地,假設(shè)在服務(wù)器組S={Si,i=l,2,…,η}中,每臺(tái)服務(wù)器的權(quán)值為Wi,已建立的連接數(shù)為Ii,服務(wù)器組的已建立的連接數(shù)的總和M= Σ Ii,當(dāng)服務(wù)器Sj滿足(h/M)/Wj=IIiin{ (li/M) /WjI的條件時(shí),當(dāng)前的新連接請(qǐng)求將被發(fā)送至服務(wù)器S」。在實(shí)現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在如下問題
輪詢調(diào)度算法假設(shè)服務(wù)器組中的所有服務(wù)器的處理性能都相同,不關(guān)心每臺(tái)服務(wù)器的當(dāng)前連接數(shù)和響應(yīng)速度,僅適合于服務(wù)器組中的所有服務(wù)器都有相同的軟硬件配置且接收到的服務(wù)請(qǐng)求相對(duì)均衡的情況,當(dāng)接收到的服務(wù)請(qǐng)求的間隔時(shí)間變化較大時(shí),容易導(dǎo)致服務(wù)器間的負(fù)載不平衡。WLC調(diào)度算法只考慮服務(wù)器當(dāng)前的連接數(shù),并沒有考慮每個(gè)連接請(qǐng)求所需的服務(wù)器系統(tǒng)資源和服務(wù)時(shí)間,如果在一段時(shí)間內(nèi)新接收到的服務(wù)請(qǐng)求比較多,會(huì)破壞集群系統(tǒng)的負(fù)載均衡;此外,WLC調(diào)度算法需要頻繁收集節(jié)點(diǎn)的負(fù)載狀態(tài)信息,會(huì)增加系統(tǒng)資源開銷。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種負(fù)載均衡方法和裝置,以準(zhǔn)確、快速地實(shí)現(xiàn)負(fù)載均衡,為此,本發(fā)明采用如下技術(shù)方案
一種負(fù)載均衡方法,包括
業(yè)務(wù)查詢機(jī)接收來自客戶端的查詢請(qǐng)求,確定可供選擇的服務(wù)器群組;
所述業(yè)務(wù)查詢機(jī)根據(jù)從所述服務(wù)器群組中的各個(gè)查詢服務(wù)器分別累計(jì)接收到的數(shù)據(jù)包量與向該查詢服務(wù)器累計(jì)發(fā)送的數(shù)據(jù)包量之間的差值,分別確定各個(gè)查詢服務(wù)器的可用配額,所述可用額度用于表征查詢服務(wù)器的剩余處理能力;
所述業(yè)務(wù)查詢機(jī)根據(jù)各個(gè)查詢服務(wù)器的可用配額從所述服務(wù)器群組中選擇查詢服務(wù)器,并向選擇出的查詢服務(wù)器發(fā)送查詢請(qǐng)求。一種負(fù)載均衡裝置,包括
接收模塊,用于接收來自客戶端的查詢請(qǐng)求;
群組確定模塊,用于確定可供選擇的服務(wù)器群組;
配額確定模塊,用于根據(jù)從所述服務(wù)器群組中的各個(gè)查詢服務(wù)器分別累計(jì)接收到的數(shù)據(jù)包量與向該查詢服務(wù)器累計(jì)發(fā)送的數(shù)據(jù)包量之間的差值,分別確定各個(gè)查詢服務(wù)器的可用配額,所述可用額度用于表征查詢服務(wù)器的剩余處理能力;
選擇模塊,用于根據(jù)各個(gè)查詢服務(wù)器的可用配額從所述服務(wù)器群組中選擇查詢服務(wù) 器;
發(fā)送模塊,用于向選擇出的查詢服務(wù)器發(fā)送查詢請(qǐng)求。本發(fā)明的實(shí)施例包括以下優(yōu)點(diǎn),因?yàn)楦鶕?jù)從各個(gè)查詢服務(wù)器累計(jì)接收到的數(shù)據(jù)包量與向該查詢服務(wù)器累計(jì)發(fā)送的數(shù)據(jù)包量之間的差值,確定各個(gè)查詢服務(wù)器的可用配額,并根據(jù)各個(gè)查詢服務(wù)器的可用配額從服務(wù)器群組中選擇接入的查詢服務(wù)器,能夠直接、快速、準(zhǔn)確地確定查詢服務(wù)器的狀態(tài),進(jìn)而實(shí)現(xiàn)負(fù)載均衡;由于不需要收集查詢服務(wù)器的負(fù)載信息,能夠有效地降低系統(tǒng)資源開銷。當(dāng)然,實(shí)施本發(fā)明的實(shí)施例的任一產(chǎn)品并不一定需要同時(shí)達(dá)到以上所述的所有優(yōu)點(diǎn)。
圖I為本發(fā)明實(shí)施例中的負(fù)載均衡系統(tǒng)架構(gòu) 圖2為本發(fā)明實(shí)施例中的負(fù)載均衡方法流程 圖3為本發(fā)明實(shí)施例中的可用配額的衰減曲線示意 圖4為本發(fā)明實(shí)施例中的更新從查詢服務(wù)器累計(jì)接收到的數(shù)據(jù)包量的方法流程 圖5為本發(fā)明實(shí)施例中的負(fù)載均衡裝置的結(jié)構(gòu)示意圖。
具體實(shí)施例方式下面將結(jié)合本發(fā)明中的附圖,對(duì)本發(fā)明中的技術(shù)方案進(jìn)行清楚、完整的描述,顯然,所描述的實(shí)施例是本發(fā)明的一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)的前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。如圖I所示,為本發(fā)明實(shí)施例中的負(fù)載均衡系統(tǒng)架構(gòu)圖,包括配置服務(wù)器、業(yè)務(wù)查詢機(jī)、查詢服務(wù)器和數(shù)據(jù)庫。其中,業(yè)務(wù)查詢機(jī)中包括負(fù)載均衡API (ApplicationProgramming Interface,應(yīng)用程序編程接口),以API的形式向各業(yè)務(wù)提供負(fù)載均衡查詢接口,從配置服務(wù)器上獲取可供選擇的服務(wù)器群組,并在本地使用負(fù)載均衡API提供的調(diào)度算法,從上述服務(wù)器群組中選擇查詢服務(wù)器,向選擇出的查詢服務(wù)器發(fā)送查詢請(qǐng)求。查詢服務(wù)器用于接收業(yè)務(wù)查詢機(jī)發(fā)送的查詢請(qǐng)求,根據(jù)該查詢請(qǐng)求從數(shù)據(jù)庫中獲取相應(yīng)的查詢數(shù)據(jù),并將查詢數(shù)據(jù)返回給業(yè)務(wù)查詢機(jī)。配置服務(wù)器用于向業(yè)務(wù)查詢機(jī)提供可用的服務(wù)器群組,服務(wù)器群組包括多個(gè)查詢服務(wù)器。具體地,配置服務(wù)器可以將查詢服務(wù)器Si的權(quán)值記為W (Si),根據(jù)查詢服務(wù)器所在的地域、運(yùn)營商等條件將查詢服務(wù)器劃分為以下五種類型,并分別分配不同的權(quán)值
Al:與業(yè)務(wù)查詢機(jī)位于同一網(wǎng)絡(luò)機(jī)房的查詢服務(wù)器,權(quán)值w (Al)=IOO ;
A2:與業(yè)務(wù)查詢機(jī)使用同一 IDC (Internet Data Center,互聯(lián)網(wǎng)數(shù)據(jù)中心)的查詢服務(wù)器,權(quán)值w (A2)=95 ;
A3:與業(yè)務(wù)查詢機(jī)同城且同運(yùn)營商的查詢服務(wù)器,權(quán)值w (A3) =50;
A4:與業(yè)務(wù)查詢機(jī)同城的查詢服務(wù)器,權(quán)值w (A4) =20 ;
A5:其他類型的查詢服務(wù)器,權(quán)值w (A5)=5。業(yè)務(wù)查詢機(jī)可以每隔預(yù)設(shè)時(shí)間(例如,10分鐘)從配置服務(wù)器獲取當(dāng)前的服務(wù)器群組,具體地,業(yè)務(wù)查詢機(jī)可以遍歷上述各個(gè)類型的查詢服務(wù)器,并按照每種類型的查詢服務(wù) 器的所需數(shù)量選取查詢服務(wù)器。如果所需類型服務(wù)器的數(shù)量不夠,可以隨機(jī)選取其它類型的查詢服務(wù)器補(bǔ)足。例如,當(dāng)服務(wù)器群組中包括10臺(tái)查詢服務(wù)器時(shí),可以隨機(jī)選取3臺(tái)Al類型的查詢服務(wù)器、3臺(tái)A2類型的查詢服務(wù)器、2臺(tái)A3類型的查詢服務(wù)器、I臺(tái)A4類型的查詢服務(wù)器和I臺(tái)A5類型的查詢服務(wù)器作為當(dāng)前的服務(wù)器群組?;谏鲜鱿到y(tǒng)架構(gòu),本發(fā)明實(shí)施例中的負(fù)載均衡方法流程圖,如圖2所示,包括以下步驟
步驟201,業(yè)務(wù)查詢機(jī)接收來自客戶端的查詢請(qǐng)求。步驟202,業(yè)務(wù)查詢機(jī)判斷當(dāng)前的服務(wù)器群組是否在有效期內(nèi),如果不在,則執(zhí)行步驟203 ;否則,執(zhí)行步驟204。其中,當(dāng)前的服務(wù)器群組可以為預(yù)先配置在業(yè)務(wù)查詢機(jī)上的服務(wù)器群組,也可以為業(yè)務(wù)查詢機(jī)上一次選擇查詢服務(wù)器時(shí)所使用的服務(wù)器列表。當(dāng)查詢服務(wù)器所在的地域、運(yùn)營商等條件的發(fā)生變化時(shí),該查詢服務(wù)器的類型也會(huì)發(fā)生變化,而服務(wù)器列表中的配置服務(wù)器是根據(jù)類型選取得到的,因此,配置服務(wù)器需要對(duì)服務(wù)器群組設(shè)定對(duì)應(yīng)的有效期,該有效期用于判斷服務(wù)器群組是否有效。步驟203,業(yè)務(wù)查詢機(jī)從配置服務(wù)器獲取更新后的服務(wù)器群組。具體地,業(yè)務(wù)查詢機(jī)可以向配置服務(wù)器發(fā)送服務(wù)器群組獲取請(qǐng)求,并接收配置服務(wù)器返回的更新后的服務(wù)器群組。步驟204,業(yè)務(wù)查詢機(jī)確定服務(wù)器群組中的各個(gè)查詢服務(wù)器的可用配額,并根據(jù)可用配額確定各個(gè)查詢服務(wù)器對(duì)應(yīng)的配額區(qū)間。具體地,可以將查詢服務(wù)器的處理能力量化為配額,查詢服務(wù)器Si的可用配額Cilrft(Si)用于表征查詢服務(wù)器Si的剩余處理能力,其初始值為預(yù)先設(shè)定的最大配額qmax(Si),Qmax(Si)可以根據(jù)查詢服務(wù)器Si的配置和性能提前設(shè)定。例如,假設(shè)服務(wù)器群組中的查詢服務(wù)器的配置和性能都基本一致,可以設(shè)定每臺(tái)查詢服務(wù)器的最大配額Qmax (Si) =10000。業(yè)務(wù)查詢機(jī)可以根據(jù)從查詢服務(wù)器Si累計(jì)接收到的數(shù)據(jù)包量rent (Si)與向該查詢服務(wù)器Si累計(jì)發(fā)送的數(shù)據(jù)包量Scnt(Si)之間的差值Λ cnt= Scnt(Si)-Ircnt(Si),調(diào)整該查詢服務(wù)器Si的可用配額,如公式[I]所示
權(quán)利要求
1.一種負(fù)載均衡方法,其特征在于,包括 業(yè)務(wù)查詢機(jī)接收來自客戶端的查詢請(qǐng)求,確定可供選擇的服務(wù)器群組; 所述業(yè)務(wù)查詢機(jī)根據(jù)從所述服務(wù)器群組中的各個(gè)查詢服務(wù)器分別累計(jì)接收到的數(shù)據(jù)包量與向該查詢服務(wù)器累計(jì)發(fā)送的數(shù)據(jù)包量之間的差值,分別確定各個(gè)查詢服務(wù)器的可用配額,所述可用額度用于表征查詢服務(wù)器的剩余處理能力; 所述業(yè)務(wù)查詢機(jī)根據(jù)各個(gè)查詢服務(wù)器的可用配額從所述服務(wù)器群組中選擇查詢服務(wù)器,并向選擇出的查詢服務(wù)器發(fā)送查詢請(qǐng)求。
2.如權(quán)利要求I所述的方法,其特征在于,所述業(yè)務(wù)查詢機(jī)根據(jù)各個(gè)查詢服務(wù)器的可用配額從所述服務(wù)器群組中選擇查詢服務(wù)器,具體為 所述業(yè)務(wù)查詢機(jī)根據(jù)各個(gè)查詢服務(wù)器的可用配額確定各個(gè)查詢服務(wù)器對(duì)應(yīng)的配額區(qū)間; 所述業(yè)務(wù)查詢機(jī)根據(jù)生成的隨機(jī)數(shù),確定該隨機(jī)數(shù)所在的配額區(qū)間,并選擇該配額區(qū)間對(duì)應(yīng)的查詢服務(wù)器。
3.如權(quán)利要求2所述的方法,其特征在于,查詢服務(wù)器Si對(duì)應(yīng)的配額區(qū)間為
4.如權(quán)利要求2所述的方法,其特征在于,還包括 當(dāng)所述隨機(jī)數(shù)在所有查詢服務(wù)器對(duì)應(yīng)的配額區(qū)間之外時(shí),所述業(yè)務(wù)查詢機(jī)選擇所述服務(wù)器群組中的任一查詢服務(wù)器,并向該查詢服務(wù)器發(fā)送查詢請(qǐng)求。
5.如權(quán)利要求I所述的方法,其特征在于,所述業(yè)務(wù)查詢機(jī)確定可供選擇的服務(wù)器群組,包括 所述業(yè)務(wù)查詢機(jī)判斷當(dāng)前的服務(wù)器群組是否在有效期內(nèi),如果在,則將所述當(dāng)前的服務(wù)器群組作為可供選擇的服務(wù)器群組;否則,從配置服務(wù)器獲取更新后的服務(wù)器群組。
6.如權(quán)利要求I所述的方法,其特征在于,所述業(yè)務(wù)查詢機(jī)根據(jù)從所述服務(wù)器群組中的各個(gè)查詢服務(wù)器累計(jì)接收到的數(shù)據(jù)包量與向該查詢服務(wù)器累計(jì)發(fā)送的數(shù)據(jù)包量之間的差值,確定各個(gè)查詢服務(wù)器的可用配額,具體為 所述業(yè)務(wù)查詢機(jī)按照以下公式確定查詢服務(wù)器Si的可用配額
7.如權(quán)利要求I所述的方法,其特征在于,還包括所述業(yè)務(wù)查詢機(jī)根據(jù)從查詢服務(wù)器接收到的數(shù)據(jù)包,更新從該查詢服務(wù)器累計(jì)接收到的數(shù)據(jù)包量;根據(jù)向查詢服務(wù)器發(fā)送的數(shù)據(jù)包,更新向該查詢服務(wù)器累計(jì)發(fā)送的數(shù)據(jù)包量。
8.如權(quán)利要求7所述的方法,其特征在于,所述業(yè)務(wù)查詢機(jī)根據(jù)從查詢服務(wù)器接收到的數(shù)據(jù)包,更新從該查詢服務(wù)器累計(jì)接收到的數(shù)據(jù)包量,包括 當(dāng)所述業(yè)務(wù)查詢機(jī)在查詢服務(wù)器恢復(fù)服務(wù)后從該查詢服務(wù)器累計(jì)接收到預(yù)設(shè)數(shù)量個(gè)數(shù)據(jù)包后,所述業(yè)務(wù)查詢機(jī)對(duì)從該查詢服務(wù)器累計(jì)接收到的數(shù)據(jù)包量進(jìn)行重置;之后,所述業(yè)務(wù)查詢機(jī)每從所述查詢服務(wù)器接收到一個(gè)數(shù)據(jù)包,對(duì)所述累計(jì)接收到的數(shù)據(jù)包量累加一個(gè)大于I的數(shù)字,直到所述累計(jì)接收到的數(shù)據(jù)包量等于累計(jì)發(fā)送的數(shù)據(jù)包量。
9.一種負(fù)載均衡裝置,其特征在于,包括 接收模塊,用于接收來自客戶端的查詢請(qǐng)求; 群組確定模塊,用于確定可供選擇的服務(wù)器群組; 配額確定模塊,用于根據(jù)從所述服務(wù)器群組中的各個(gè)查詢服務(wù)器分別累計(jì)接收到的數(shù)據(jù)包量與向該查詢服務(wù)器累計(jì)發(fā)送的數(shù)據(jù)包量之間的差值,分別確定各個(gè)查詢服務(wù)器的可用配額,所述可用額度用于表征查詢服務(wù)器的剩余處理能力; 選擇模塊,用于根據(jù)各個(gè)查詢服務(wù)器的可用配額從所述服務(wù)器群組中選擇查詢服務(wù)器; 發(fā)送模塊,用于向選擇出的查詢服務(wù)器發(fā)送查詢請(qǐng)求。
10.如權(quán)利要求9所述的裝置,其特征在于, 所述選擇模塊,具體用于根據(jù)各個(gè)查詢服務(wù)器的可用配額確定各個(gè)查詢服務(wù)器對(duì)應(yīng)的配額區(qū)間;生成隨機(jī)數(shù),確定該隨機(jī)數(shù)所在的配額區(qū)間,并選擇該配額區(qū)間對(duì)應(yīng)的查詢服務(wù)器。
11.如權(quán)利要求10所述的裝置,其特征在于,查詢服務(wù)器Si對(duì)應(yīng)的配額區(qū)間為
12.如權(quán)利要求10所述的裝置,其特征在于, 所述選擇模塊,還用于在所述隨機(jī)數(shù)在所有查詢服務(wù)器對(duì)應(yīng)的配額區(qū)間之外時(shí),選擇所述服務(wù)器群組中的任一查詢服務(wù)器。
13.如權(quán)利要求9所述的裝置,其特征在于, 所述群組確定模塊,具體用于判斷當(dāng)前的服務(wù)器群組是否在有效期內(nèi),如果在,則將所述當(dāng)前的服務(wù)器群組作為可供選擇的服務(wù)器群組;否則,從配置服務(wù)器獲取更新后的服務(wù)器群組。
14.如權(quán)利要求9所述的裝置,其特征在于, 所述配額確定模塊,具體用于按照以下公式確定查詢服務(wù)器Si的可用配額
15.如權(quán)利要求9所述的裝置,其特征在于,還包括 更新模塊,用于根據(jù)從查詢服務(wù)器接收到的數(shù)據(jù)包,更新從該查詢服務(wù)器累計(jì)接收到的數(shù)據(jù)包量;根據(jù)向查詢服務(wù)器發(fā)送的數(shù)據(jù)包,更新向該查詢服務(wù)器累計(jì)發(fā)送的數(shù)據(jù)包量。
16.如權(quán)利要求15所述的裝置,其特征在于, 所述更新模塊,具體用于在所述接收模塊在查詢服務(wù)器恢復(fù)服務(wù)后從該查詢服務(wù)器累計(jì)接收到預(yù)設(shè)數(shù)量個(gè)數(shù)據(jù)包后,對(duì)從該查詢服務(wù)器累計(jì)接收到的數(shù)據(jù)包量進(jìn)行重置;之后,每從所述查詢服務(wù)器接收到一個(gè)數(shù)據(jù)包,對(duì)所述累計(jì)接收到的數(shù)據(jù)包量累加一個(gè)大于I的數(shù)字,直到所述累計(jì)接收到的數(shù)據(jù)包量等于累計(jì)發(fā)送的數(shù)據(jù)包量。
全文摘要
本發(fā)明公開了一種負(fù)載均衡方法和裝置,該方法包括業(yè)務(wù)查詢機(jī)接收來自客戶端的查詢請(qǐng)求,確定可供選擇的服務(wù)器群組;所述業(yè)務(wù)查詢機(jī)根據(jù)從所述服務(wù)器群組中的各個(gè)查詢服務(wù)器分別累計(jì)接收到的數(shù)據(jù)包量與向該查詢服務(wù)器累計(jì)發(fā)送的數(shù)據(jù)包量之間的差值,分別確定各個(gè)查詢服務(wù)器的可用配額,所述可用額度用于表征查詢服務(wù)器的剩余處理能力;所述業(yè)務(wù)查詢機(jī)根據(jù)各個(gè)查詢服務(wù)器的可用配額從所述服務(wù)器群組中選擇查詢服務(wù)器,并向選擇出的查詢服務(wù)器發(fā)送查詢請(qǐng)求。通過使用本發(fā)明,能夠準(zhǔn)確、快速地實(shí)現(xiàn)負(fù)載均衡。
文檔編號(hào)H04L12/56GK102724105SQ20111007834
公開日2012年10月10日 申請(qǐng)日期2011年3月30日 優(yōu)先權(quán)日2011年3月30日
發(fā)明者馮慶磊, 劉松, 孫煒, 蘇國立 申請(qǐng)人:騰訊科技(深圳)有限公司