一種集群負(fù)載均衡調(diào)度方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明提供一種集群負(fù)載均衡調(diào)度方法及系統(tǒng),上述方法包括以下步驟:獲取業(yè)務(wù)請求中攜帶的IP地址信息并對所述IP地址信息按照預(yù)設(shè)的處理策略進(jìn)行處理,獲得IP地址對應(yīng)的二進(jìn)制位數(shù)信息;根據(jù)預(yù)設(shè)的初始層級,獲取當(dāng)前的hash掩碼并計(jì)算當(dāng)前的hash掩碼對應(yīng)的二進(jìn)制位數(shù)并將所述二進(jìn)制位數(shù)作為折疊長度;根據(jù)獲取的折疊長度對IP地址對應(yīng)的二進(jìn)制位數(shù)進(jìn)行折疊,獲取折疊結(jié)果;將所述折疊結(jié)果對當(dāng)前掩碼取余運(yùn)算并根據(jù)運(yùn)算結(jié)果,按照預(yù)設(shè)的服務(wù)器選擇策略,確定對應(yīng)的目標(biāo)服務(wù)器。本發(fā)明能夠大量減少瀑布式散列的集群負(fù)載均衡調(diào)度算法中hash運(yùn)算的運(yùn)算量,從而提高效率。
【專利說明】一種集群負(fù)載均衡調(diào)度方法及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于負(fù)載均衡領(lǐng)域,尤其涉及一種集群負(fù)載均衡調(diào)度方法及系統(tǒng)。
【背景技術(shù)】
[0002]在集群計(jì)算中經(jīng)常使用各種負(fù)載均衡算法,解決系統(tǒng)的可伸縮性和透明性問題,即通過負(fù)載均衡調(diào)度器將請求高效地分發(fā)到不同的服務(wù)器執(zhí)行,使得由多臺獨(dú)立計(jì)算機(jī)組成的集群系統(tǒng)成為一臺虛擬服務(wù)器,客戶端應(yīng)用程序與集群系統(tǒng)交互時,就像與一臺高性能的服務(wù)器交互一樣。
[0003]目前常見的負(fù)載均衡調(diào)度算法有輪叫調(diào)度、加權(quán)輪叫調(diào)度、最小連接調(diào)度、加權(quán)最小連接調(diào)度、基于局部性的最少鏈接、帶復(fù)制的基于局部性最少鏈接、目標(biāo)地址散列調(diào)度、源地址散列調(diào)度等,源地址散列調(diào)度是比較常見的靜態(tài)調(diào)度算法,瀑布式散列的集群負(fù)載均衡調(diào)度算法是一種改進(jìn)的源地址散列調(diào)度算法,在實(shí)際應(yīng)用中,可以結(jié)合這種調(diào)度算法使用在防火墻集群中,從而保證整個系統(tǒng)有唯一的出入口。
[0004]但是,在瀑布式散列的集群負(fù)載均衡調(diào)度算法中,根據(jù)源IP地址乘上一個大素?cái)?shù)再哈希當(dāng)前層級的掩碼,該算法的存在兩個問題,問題一是當(dāng)掩碼位數(shù)遠(yuǎn)小于IP地址與大素?cái)?shù)乘積的位數(shù)時,哈希運(yùn)算只使用了 IP地址與大素?cái)?shù)乘積部分位,如此會使得hash結(jié)果沖突較高,需要增加層級避免,如掩碼為100時,則IP地址與大素?cái)?shù)乘積的后兩位就決定了 hash的結(jié)果,如果有兩個IP地址,IP地址與大素?cái)?shù)乘積的后兩位相同,則得到了相同的hash值,此時就需增加瀑布層級來避免沖突,這樣效率就降低了 ;問題二是IP地址和大素?cái)?shù)的乘法運(yùn)算屬于兩個大數(shù)的乘法運(yùn)算,效率低。
【發(fā)明內(nèi)容】
[0005]本發(fā)明提供一種集群負(fù)載均衡調(diào)度方法及系統(tǒng),以解決上述問題。
[0006]本發(fā)明提供一種集群負(fù)載均衡調(diào)度方法,包括以下步驟:
[0007]獲取業(yè)務(wù)請求中攜帶的IP地址信息并對所述IP地址信息按照預(yù)設(shè)的處理策略進(jìn)行處理,獲得IP地址對應(yīng)的二進(jìn)制位數(shù)信息;
[0008]根據(jù)預(yù)設(shè)的初始層級,獲取當(dāng)前的hash掩碼并計(jì)算當(dāng)前的hash掩碼對應(yīng)的二進(jìn)制位數(shù)并將所述二進(jìn)制位數(shù)作為折疊長度;
[0009]根據(jù)獲取的折疊長度對IP地址對應(yīng)的二進(jìn)制位數(shù)進(jìn)行折疊,獲取折疊結(jié)果;
[0010]將所述折疊結(jié)果對當(dāng)前掩碼取余運(yùn)算并根據(jù)運(yùn)算結(jié)果,按照預(yù)設(shè)的服務(wù)器選擇策略,確定對應(yīng)的目標(biāo)服務(wù)器。
[0011]本發(fā)明還提供一種集群負(fù)載均衡調(diào)度系統(tǒng),包括IP地址二進(jìn)制位數(shù)獲取模塊、折疊長度獲取模塊、折疊結(jié)果獲取模塊、目標(biāo)服務(wù)器確定模塊;其中,所述IP地址二進(jìn)制位數(shù)獲取模塊通過所述折疊長度獲取模塊與所述折疊結(jié)果獲取模塊相連;所述折疊長度獲取模塊通過所述折疊結(jié)果獲取模塊與所述目標(biāo)服務(wù)器確定模塊相連;
[0012]所述IP地址二進(jìn)制位數(shù)獲取模塊,用于獲取業(yè)務(wù)請求中攜帶的IP地址信息并對所述IP地址信息按照預(yù)設(shè)的處理策略進(jìn)行處理,獲得IP地址對應(yīng)的二進(jìn)制位數(shù)信息并將所述IP地址對應(yīng)的二進(jìn)制位數(shù)信息發(fā)送至所述折疊長度獲取模塊;
[0013]所述折疊長度獲取模塊,用于根據(jù)預(yù)設(shè)的初始層級,獲取當(dāng)前的hash掩碼并計(jì)算當(dāng)前的hash掩碼對應(yīng)的二進(jìn)制位數(shù)并將所述二進(jìn)制位數(shù)作為折疊長度并將所述折疊長度發(fā)送至所述折疊結(jié)果獲取模塊;
[0014]所述折疊結(jié)果獲取模塊,用于根據(jù)獲取的折疊長度對IP地址對應(yīng)的二進(jìn)制位數(shù)進(jìn)行折疊,獲取折疊結(jié)果并將所述折疊結(jié)果發(fā)送至所述目標(biāo)服務(wù)器確定模塊;
[0015]所述目標(biāo)服務(wù)器確定模塊,用于將所述折疊結(jié)果對當(dāng)前掩碼取余運(yùn)算并根據(jù)運(yùn)算結(jié)果,按照預(yù)設(shè)的服務(wù)器選擇策略,確定對應(yīng)的目標(biāo)服務(wù)器。
[0016]本發(fā)明提供一種集群負(fù)載均衡調(diào)度方法及系統(tǒng),能夠大量減少瀑布式散列的集群負(fù)載均衡調(diào)度算法中hash運(yùn)算的運(yùn)算量,從而提高效率。
【專利附圖】
【附圖說明】
[0017]此處所說明的附圖用來提供對本發(fā)明的進(jìn)一步理解,構(gòu)成本申請的一部分,本發(fā)明的示意性實(shí)施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當(dāng)限定。在附圖中:
[0018]圖1所示為本發(fā)明實(shí)施例1的集群負(fù)載均衡調(diào)度方法處理流程圖;
[0019]圖2所示為本發(fā)明實(shí)施例2的折疊方式示意圖;
[0020]圖3所示為本發(fā)明實(shí)施例3的集群負(fù)載均衡調(diào)度方法處理流程圖;
[0021]圖4所示為本發(fā)明實(shí)施例4的集群負(fù)載均衡調(diào)度系統(tǒng)結(jié)構(gòu)圖。
【具體實(shí)施方式】
[0022]下文中將參考附圖并結(jié)合實(shí)施例來詳細(xì)說明本發(fā)明。需要說明的是,在不沖突的情況下,本申請中的實(shí)施例及實(shí)施例中的特征可以相互組合。
[0023]圖1所示為本發(fā)明實(shí)施例1的集群負(fù)載均衡調(diào)度方法處理流程圖,包括以下步驟:
[0024]步驟101:獲取業(yè)務(wù)請求中攜帶的IP地址信息并對所述IP地址信息按照預(yù)設(shè)的處理策略進(jìn)行處理,獲得IP地址對應(yīng)的二進(jìn)制位數(shù)信息;
[0025]獲取業(yè)務(wù)請求中攜帶的IP地址信息并對所述IP地址信息按照預(yù)設(shè)的處理策略進(jìn)行處理,獲得IP地址對應(yīng)的二進(jìn)制位數(shù)信息的過程為:
[0026]獲取業(yè)務(wù)請求中攜帶的IP地址信息后,刪除分割符”,不足三位的域加O補(bǔ)足三位,獲取IP整型值;
[0027]通過整形二進(jìn)制位數(shù)計(jì)算函數(shù)calc_bi t_len,獲取IP整型值對應(yīng)的二進(jìn)制位數(shù)信息。
[0028]例如:IP地址信息為192.168.0.1 ;刪除分割符”,不足三位的域加O補(bǔ)足三位(第三個域補(bǔ)充兩個O變成000,第四個域補(bǔ)充兩個O變成001),轉(zhuǎn)化后獲得IP整型值=192168000001。
[0029]calc_bit_len為整形二進(jìn)制位數(shù)計(jì)算函數(shù),二進(jìn)制位數(shù)為該整形值二進(jìn)制表示中最左邊的I所在的位數(shù):具體計(jì)算方法為,每次右移一位,并記錄右移次數(shù),如果最低位為I則二進(jìn)制長度等于右移次數(shù),直到整形數(shù)值為O為止。例如傳入整形數(shù)為100,則其二進(jìn)制表示為“01100100”,最左邊的I其所在的位數(shù)為7 (從右往左數(shù)),則100的二進(jìn)制位數(shù)為7位。
[0030]步驟102:根據(jù)預(yù)設(shè)的初始層級,獲取當(dāng)前的hash掩碼并計(jì)算當(dāng)前的hash掩碼對應(yīng)的二進(jìn)制位數(shù)并將所述二進(jìn)制位數(shù)作為折疊長度;
[0031]預(yù)設(shè)的初始層級為O。
[0032]步驟103:根據(jù)獲取的折疊長度對IP地址對應(yīng)的二進(jìn)制位數(shù)進(jìn)行折疊,獲取折疊結(jié)果;
[0033]如果折疊長度為K,則先取IP地址對應(yīng)的二進(jìn)制位數(shù)的低K位加入到折疊結(jié)果中,然后將IP地址對應(yīng)的二進(jìn)制位數(shù)右移K位,如果IP地址對應(yīng)的二進(jìn)制位數(shù)不為0,則繼續(xù)將IP地址對應(yīng)的二進(jìn)制位數(shù)的低K位加入到折疊結(jié)果中,直至IP地址對應(yīng)的二進(jìn)制位數(shù)為Oo
[0034]如圖2所示,假設(shè)當(dāng)前的hash掩碼二進(jìn)制位數(shù)為K即折疊長度,IP地址對應(yīng)的二進(jìn)制位數(shù)為大于2K小于3K,則根據(jù)獲取的折疊長度K,將IP地址對應(yīng)的二進(jìn)制串分成三段,三段右對齊按位相加即可得到折疊后的IP值即折疊結(jié)果。
[0035]步驟104:將所述折疊結(jié)果對當(dāng)前掩碼取余運(yùn)算,獲得當(dāng)前的hash值即服務(wù)器索引值;
[0036]該hash算法使得IP地址對應(yīng)二進(jìn)制位數(shù)的全部位值都參與hash運(yùn)算,而且避免了大素?cái)?shù)乘法,效率大幅提高。
[0037]步驟105:根據(jù)所述服務(wù)器索引值,獲取對應(yīng)的服務(wù)器,若所述服務(wù)器滿足預(yù)設(shè)條件,則確定所述服務(wù)器為目標(biāo)服務(wù)器并由所述目標(biāo)服務(wù)器對所述請求進(jìn)行處理。
[0038]所述預(yù)設(shè)條件是指:服務(wù)器的連接數(shù)目小于或等于2倍的權(quán)值。
[0039]若有一組服務(wù)器S = {SO, SI,..., Sn-1},W(Si)表示服務(wù)器Si的權(quán)值,C(Si)表示服務(wù)器Si的當(dāng)前連接數(shù)。ServerNode []是包含所有服務(wù)器的數(shù)組,長度為N ;初始化時,將所有服務(wù)器順序放置到ServerNode表中;若服務(wù)器的連接數(shù)目大于2倍的權(quán)值,則表示服務(wù)器已超載。
[0040]若所述服務(wù)器不滿足預(yù)設(shè)條件,則繼續(xù)增加層級,直到最大層級N-1,如果到最大層級還找不到滿足要求服務(wù)器則返回失敗。
[0041]圖3所示為本發(fā)明實(shí)施例3的集群負(fù)載均衡調(diào)度方法處理流程圖,包括以下步驟:
[0042]步驟301:獲取業(yè)務(wù)請求中攜帶的IP地址信息并對所述IP地址信息按照預(yù)設(shè)的處理策略進(jìn)行處理,獲得IP地址對應(yīng)的二進(jìn)制位數(shù)信息;
[0043]步驟302:根據(jù)預(yù)設(shè)的初始層級,獲取當(dāng)前的hash掩碼并計(jì)算當(dāng)前的hash掩碼對應(yīng)的二進(jìn)制位數(shù)并將所述二進(jìn)制位數(shù)作為折疊長度;
[0044]步驟303:根據(jù)獲取的折疊長度對IP地址對應(yīng)的二進(jìn)制位數(shù)進(jìn)行折疊,獲取折疊結(jié)果;
[0045]步驟304:將所述折疊結(jié)果對當(dāng)前掩碼取余運(yùn)算并根據(jù)運(yùn)算結(jié)果,按照預(yù)設(shè)的服務(wù)器選擇策略,確定對應(yīng)的目標(biāo)服務(wù)器。
[0046]圖4所示為本發(fā)明實(shí)施例4的集群負(fù)載均衡調(diào)度系統(tǒng)結(jié)構(gòu)圖,包括IP地址二進(jìn)制位數(shù)獲取模塊、折疊長度獲取模塊、折疊結(jié)果獲取模塊、目標(biāo)服務(wù)器確定模塊;其中,所述IP地址二進(jìn)制位數(shù)獲取模塊通過所述折疊長度獲取模塊與所述折疊結(jié)果獲取模塊相連;所述折疊長度獲取模塊通過所述折疊結(jié)果獲取模塊與所述目標(biāo)服務(wù)器確定模塊相連;
[0047]所述IP地址二進(jìn)制位數(shù)獲取模塊,用于獲取業(yè)務(wù)請求中攜帶的IP地址信息并對所述IP地址信息按照預(yù)設(shè)的處理策略進(jìn)行處理,獲得IP地址對應(yīng)的二進(jìn)制位數(shù)信息并將所述IP地址對應(yīng)的二進(jìn)制位數(shù)信息發(fā)送至所述折疊長度獲取模塊;
[0048]所述折疊長度獲取模塊,用于根據(jù)預(yù)設(shè)的初始層級,獲取當(dāng)前的hash掩碼并計(jì)算當(dāng)前的hash掩碼對應(yīng)的二進(jìn)制位數(shù)并將所述二進(jìn)制位數(shù)作為折疊長度并將所述折疊長度發(fā)送至所述折疊結(jié)果獲取模塊;
[0049]所述折疊結(jié)果獲取模塊,用于根據(jù)獲取的折疊長度對IP地址對應(yīng)的二進(jìn)制位數(shù)進(jìn)行折疊,獲取折疊結(jié)果并將所述折疊結(jié)果發(fā)送至所述目標(biāo)服務(wù)器確定模塊;
[0050]所述目標(biāo)服務(wù)器確定模塊,用于將所述折疊結(jié)果對當(dāng)前掩碼取余運(yùn)算并根據(jù)運(yùn)算結(jié)果,按照預(yù)設(shè)的服務(wù)器選擇策略,確定對應(yīng)的目標(biāo)服務(wù)器。
[0051]本發(fā)明提供一種集群負(fù)載均衡調(diào)度方法及系統(tǒng),能夠大量減少瀑布式散列的集群負(fù)載均衡調(diào)度算法中hash運(yùn)算的運(yùn)算量,從而提高效率。
[0052]以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種集群負(fù)載均衡調(diào)度方法,其特征在于,包括以下步驟: 獲取業(yè)務(wù)請求中攜帶的IP地址信息并對所述IP地址信息按照預(yù)設(shè)的處理策略進(jìn)行處理,獲得IP地址對應(yīng)的二進(jìn)制位數(shù)信息; 根據(jù)預(yù)設(shè)的初始層級,獲取當(dāng)前的hash掩碼并計(jì)算當(dāng)前的hash掩碼對應(yīng)的二進(jìn)制位數(shù)并將所述二進(jìn)制位數(shù)作為折疊長度; 根據(jù)獲取的折疊長度對IP地址對應(yīng)的二進(jìn)制位數(shù)進(jìn)行折疊,獲取折疊結(jié)果; 將所述折疊結(jié)果對當(dāng)前掩碼取余運(yùn)算并根據(jù)運(yùn)算結(jié)果,按照預(yù)設(shè)的服務(wù)器選擇策略,確定對應(yīng)的目標(biāo)服務(wù)器。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,將所述折疊結(jié)果對當(dāng)前掩碼取余運(yùn)算,獲得當(dāng)前的hash值即服務(wù)器索引值; 根據(jù)所述服務(wù)器索引值,獲取對應(yīng)的服務(wù)器,若所述服務(wù)器滿足預(yù)設(shè)條件,則確定所述服務(wù)器為目標(biāo)服務(wù)器并由所述目標(biāo)服務(wù)器對所述請求進(jìn)行處理。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,若所述服務(wù)器不滿足預(yù)設(shè)條件,則繼續(xù)增加層級,直到最大層級N-1,如果到最大層級還找不到滿足要求服務(wù)器則返回失敗。
4.根據(jù)權(quán)利要求2或3所述的方法,其特征在于,所述預(yù)設(shè)條件是指:服務(wù)器的連接數(shù)目小于或等于2倍的權(quán)值。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,獲取業(yè)務(wù)請求中攜帶的IP地址信息并對所述IP地址信息按照預(yù)設(shè)的處理策略進(jìn)行處理,獲得IP地址對應(yīng)的二進(jìn)制位數(shù)信息的過程為: 獲取業(yè)務(wù)請求中攜帶的IP地址信息后,刪除分割符”,不足三位的域加O補(bǔ)足三位,獲取IP整型值; 通過整形二進(jìn)制位數(shù)計(jì)算函數(shù)calc_bit_len,獲取IP整型值對應(yīng)的二進(jìn)制位數(shù)信息。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,預(yù)設(shè)的初始層級為O。
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,若折疊長度為K,則先取IP地址對應(yīng)的二進(jìn)制位數(shù)的低K位加入到折疊結(jié)果中,然后將IP地址對應(yīng)的二進(jìn)制位數(shù)右移K位,如果IP地址對應(yīng)的二進(jìn)制位數(shù)不為O,則繼續(xù)將IP地址對應(yīng)的二進(jìn)制位數(shù)的低K位加入到折疊結(jié)果中,直至IP地址對應(yīng)的二進(jìn)制位數(shù)為O。
8.根據(jù)權(quán)利要求1所述的方法,其特征在于,當(dāng)前的hash掩碼二進(jìn)制位數(shù)為K即折疊長度,IP地址對應(yīng)的二進(jìn)制位數(shù)為大于2K小于3K,則根據(jù)獲取的折疊長度K,將IP地址對應(yīng)的二進(jìn)制串分成三段,三段右對齊按位相加即可得到折疊后的IP值即折疊結(jié)果。
9.一種集群負(fù)載均衡調(diào)度系統(tǒng),其特征在于,包括IP地址二進(jìn)制位數(shù)獲取模塊、折疊長度獲取模塊、折疊結(jié)果獲取模塊、目標(biāo)服務(wù)器確定模塊;其中,所述IP地址二進(jìn)制位數(shù)獲取模塊通過所述折疊長度獲取模塊與所述折疊結(jié)果獲取模塊相連;所述折疊長度獲取模塊通過所述折疊結(jié)果獲取模塊與所述目標(biāo)服務(wù)器確定模塊相連; 所述IP地址二進(jìn)制位數(shù)獲取模塊,用于獲取業(yè)務(wù)請求中攜帶的IP地址信息并對所述IP地址信息按照預(yù)設(shè)的處理策略進(jìn)行處理,獲得IP地址對應(yīng)的二進(jìn)制位數(shù)信息并將所述IP地址對應(yīng)的二進(jìn)制位數(shù)信息發(fā)送至所述折疊長度獲取模塊; 所述折疊長度獲取模塊,用于根據(jù)預(yù)設(shè)的初始層級,獲取當(dāng)前的hash掩碼并計(jì)算當(dāng)前的hash掩碼對應(yīng)的二進(jìn)制位數(shù)并將所述二進(jìn)制位數(shù)作為折疊長度并將所述折疊長度發(fā)送至所述折疊結(jié)果獲取模塊; 所述折疊結(jié)果獲取模塊,用于根據(jù)獲取的折疊長度對IP地址對應(yīng)的二進(jìn)制位數(shù)進(jìn)行折疊,獲取折疊結(jié)果并將所述折疊結(jié)果發(fā)送至所述目標(biāo)服務(wù)器確定模塊; 所述目標(biāo)服務(wù)器確定模塊,用于將所述折疊結(jié)果對當(dāng)前掩碼取余運(yùn)算并根據(jù)運(yùn)算結(jié)果,按照預(yù)設(shè)的服務(wù)器選擇策略,確定對應(yīng)的目標(biāo)服務(wù)器。
【文檔編號】H04L29/08GK104468823SQ201410816957
【公開日】2015年3月25日 申請日期:2014年12月24日 優(yōu)先權(quán)日:2014年12月24日
【發(fā)明者】辛永欣 申請人:浪潮(北京)電子信息產(chǎn)業(yè)有限公司