專利名稱:實(shí)現(xiàn)負(fù)載均衡的方法、負(fù)載均衡服務(wù)器以及集群系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)集群技術(shù)領(lǐng)域,更為具體地,涉及一種實(shí)現(xiàn)負(fù)載均衡的方法、負(fù)
載均衡服務(wù)器以及集群系統(tǒng)。
背景技術(shù):
隨著應(yīng)用系統(tǒng)數(shù)據(jù)量的增長(zhǎng),使得數(shù)據(jù)處理請(qǐng)求和計(jì)算強(qiáng)度相應(yīng)地增長(zhǎng),而日益 增長(zhǎng)的數(shù)據(jù)處理請(qǐng)求和計(jì)算強(qiáng)度對(duì)系統(tǒng)的規(guī)模和處理能力提出了更高的要求。為了應(yīng)對(duì)這 樣的趨勢(shì),可以采用多機(jī)的集群運(yùn)行環(huán)境來(lái)協(xié)同工作并處理各種任務(wù)請(qǐng)求,從而達(dá)到單系 統(tǒng)高并發(fā)和多系統(tǒng)融合的目的。同時(shí),通過(guò)集群實(shí)現(xiàn)系統(tǒng)無(wú)縫擴(kuò)展,使系統(tǒng)性能和硬件的增 加得到成比例的提高。 目前,大多數(shù)集群方案都是依托于硬件的基礎(chǔ)上,實(shí)現(xiàn)一個(gè)硬件集群。但是,這些 集群方案僅根據(jù)集群系統(tǒng)中的單一資源來(lái)分配任務(wù)請(qǐng)求,而且不能根據(jù)需要實(shí)現(xiàn)靈活的配 置,造成集群中一些平臺(tái)的資源浪費(fèi),降低了集群系統(tǒng)的處理能力,使得集群系統(tǒng)不能做出 正確的分配決策。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種實(shí)現(xiàn)負(fù)載均衡的方法、負(fù)載均衡服務(wù)器以及集群系 統(tǒng),用于根據(jù)集群系統(tǒng)中的各種資源信息分配任務(wù)請(qǐng)求,從而實(shí)現(xiàn)集群系統(tǒng)的靈活配置和 更有效的負(fù)載均衡。
—方面,本發(fā)明提供了一種實(shí)現(xiàn)負(fù)載均衡的方法,該方法包括
負(fù)載均衡服務(wù)器接收任務(wù)請(qǐng)求, 根據(jù)負(fù)載均衡策略和至少兩個(gè)子節(jié)點(diǎn)分別發(fā)送的各種資源信息確定處理所述任 務(wù)請(qǐng)求的子節(jié)點(diǎn), 將所述任務(wù)請(qǐng)求發(fā)送給確定出的子節(jié)點(diǎn)。
另一方面,本發(fā)明提供了一種負(fù)載均衡服務(wù)器,該負(fù)載均衡服務(wù)器包括
接收模塊,用于接收任務(wù)請(qǐng)求和至少兩個(gè)子節(jié)點(diǎn)分別發(fā)送的各種資源信息;
負(fù)載均衡模塊,用于根據(jù)負(fù)載均衡策略和所述各種資源信息確定處理所述任務(wù)請(qǐng) 求的子節(jié)點(diǎn); 分配模塊,用于將所述任務(wù)請(qǐng)求發(fā)送給確定出的子節(jié)點(diǎn)。
再一方面,本發(fā)明還提供了一種集群系統(tǒng),該集群系統(tǒng)包括
至少兩個(gè)子節(jié)點(diǎn)和負(fù)載均衡服務(wù)器; 其中,所述至少兩個(gè)子節(jié)點(diǎn)分別采集各自的各種資源信息,并將所述各種資源信 息發(fā)送給負(fù)載均衡服務(wù)器,所述負(fù)載均衡服務(wù)器接收任務(wù)請(qǐng)求和所述各種資源信息,根據(jù) 負(fù)載均衡策略和所述各種資源信息確定處理該任務(wù)請(qǐng)求的子節(jié)點(diǎn),并將該任務(wù)請(qǐng)求發(fā)送給 確定出的子節(jié)點(diǎn)。 實(shí)施本發(fā)明的一種實(shí)現(xiàn)負(fù)載均衡的方法、負(fù)載均衡服務(wù)器以及集群系統(tǒng)具有如下
6有益效果通過(guò)根據(jù)負(fù)載均衡策略和集群中的至少兩個(gè)子節(jié)點(diǎn)分別發(fā)送的各種資源信息確 定處理任務(wù)請(qǐng)求的子節(jié)點(diǎn),在集群系統(tǒng)中實(shí)現(xiàn)最合理的資源分配,從而實(shí)現(xiàn)系統(tǒng)的負(fù)載均 衡,并且可以根據(jù)需要實(shí)現(xiàn)靈活的配置,使系統(tǒng)的處理效率得到最大的提高。
圖1是本發(fā)明的一種實(shí)現(xiàn)負(fù)載均衡的方法的流程圖; 圖2是本發(fā)明的實(shí)現(xiàn)負(fù)載均衡的方法的實(shí)施例一 ; 圖3是本發(fā)明的實(shí)現(xiàn)負(fù)載均衡的方法的實(shí)施例二 ; 圖4是本發(fā)明的一種集群系統(tǒng)的結(jié)構(gòu)示意圖; 圖5是本發(fā)明的集群系統(tǒng)中的負(fù)載均衡服務(wù)器的結(jié)構(gòu)示意圖; 圖6是本發(fā)明的負(fù)載均衡服務(wù)器中的負(fù)載均衡模塊的結(jié)構(gòu)示意圖; 圖7是本發(fā)明的集群系統(tǒng)中的負(fù)載均衡服務(wù)器的實(shí)施例一 ; 圖8是本發(fā)明的集群系統(tǒng)中的負(fù)載均衡服務(wù)器的實(shí)施例二 ; 圖9是本發(fā)明的集群系統(tǒng)中的負(fù)載均衡服務(wù)器的實(shí)施例三。
具體實(shí)施例方式
為使本發(fā)明的實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā) 明作進(jìn)一步地詳細(xì)描述。
圖1是本發(fā)明的一種實(shí)現(xiàn)負(fù)載均衡的方法的流程圖。如圖1所示,該方法包括
SlOl,負(fù)載均衡服務(wù)器接收任務(wù)請(qǐng)求。 由于在集群系統(tǒng)中通常對(duì)添加類型的任務(wù)請(qǐng)求做負(fù)載均衡,因此,在S101中 接收到的任務(wù)請(qǐng)求指代本地添加任務(wù)請(qǐng)求或者遠(yuǎn)程添加任務(wù)請(qǐng)求。另外,為了給集群 系統(tǒng)提供一個(gè)接收任務(wù)請(qǐng)求的可靠的通路,本發(fā)明實(shí)施例優(yōu)選采用MINA (Multipurpose Infrastructure for Network Applications)的點(diǎn)對(duì)點(diǎn)的模式來(lái)接收任務(wù)請(qǐng)求,其中, MINA是開(kāi)源組織APACHE維護(hù)的一個(gè)網(wǎng)絡(luò)應(yīng)用程序框架,用戶利用MINA可以容易地開(kāi)發(fā) 高性能和高伸縮性的網(wǎng)絡(luò)應(yīng)用程序。當(dāng)然,本發(fā)明實(shí)施例也可以采用JAVA中基于TCP/IP socket通訊方式的其他模式接收。 S102,根據(jù)負(fù)載均衡策略和至少兩個(gè)子節(jié)點(diǎn)分別發(fā)送的各種資源信息確定處理該 任務(wù)請(qǐng)求的子節(jié)點(diǎn),包括兩種實(shí)施方式 實(shí)施方式一 根據(jù)配置的最小資源處理數(shù)算法和所述各種資源信息確定出處理該 任務(wù)請(qǐng)求的子節(jié)點(diǎn);或者 實(shí)施方式二 根據(jù)配置的加權(quán)輪叫調(diào)度算法和所述各種資源信息確定出處理該任 務(wù)請(qǐng)求的子節(jié)點(diǎn)。 需要說(shuō)明的是,所述至少兩個(gè)子節(jié)點(diǎn)是按照配置的時(shí)間間隔分別定時(shí)采集并發(fā)送 所述子節(jié)點(diǎn)的各種資源信息,但是,如果子節(jié)點(diǎn)過(guò)于頻繁的采集并發(fā)送資源信息,則會(huì)影響 集群系統(tǒng)的性能和穩(wěn)定性,因此,在實(shí)際應(yīng)用中,通常以秒為單位來(lái)配置所述時(shí)間間隔。在 本發(fā)明的一種實(shí)施方式中,可以配置該時(shí)間間隔為5秒,在本發(fā)明的其他實(shí)施方式中,技術(shù) 人員可以在滿足集群系統(tǒng)的性能和穩(wěn)定性的基礎(chǔ)上根據(jù)實(shí)際情況靈活地配置該時(shí)間間隔。
S103,將所述任務(wù)請(qǐng)求發(fā)送給確定出的子節(jié)點(diǎn)。
其中,為了給集群系統(tǒng)提供一個(gè)發(fā)送任務(wù)請(qǐng)求的可靠、信賴的通路,本發(fā)明實(shí)施例 優(yōu)選地采用MINA的點(diǎn)對(duì)點(diǎn)的模式將任務(wù)請(qǐng)求發(fā)送到確定出的子節(jié)點(diǎn),當(dāng)然,也可以采用基 于TCP/IP socket通訊方式的其他模式發(fā)送。
下面對(duì)S102中的實(shí)施方式一做詳細(xì)的說(shuō)明。 實(shí)施方式一 根據(jù)配置的最小資源處理數(shù)算法和所述至少兩個(gè)子節(jié)點(diǎn)分別發(fā)送的 各種資源信息確定出處理該任務(wù)請(qǐng)求的子節(jié)點(diǎn),具體為 為集群系統(tǒng)中的至少兩個(gè)子節(jié)點(diǎn)中的各個(gè)子節(jié)點(diǎn)設(shè)置節(jié)點(diǎn)權(quán)值,為至少兩個(gè)子節(jié) 點(diǎn)分別發(fā)送的各種資源信息中的每一種資源信息設(shè)置資源值和資源負(fù)載權(quán)值,所述節(jié)點(diǎn)權(quán) 值、資源值和資源負(fù)載權(quán)值均可以由技術(shù)人員根據(jù)實(shí)際需要進(jìn)行設(shè)置和修改。其中,所述資 源信息包括線程使用率、CPU使用率、內(nèi)存使用率和正在處理的任務(wù)請(qǐng)求數(shù)量,當(dāng)然,本發(fā)明 實(shí)施例的S102中的實(shí)施方式一并不限于上述四種資源信息,還可以由技術(shù)人員根據(jù)實(shí)際 需要設(shè)置應(yīng)該考慮的資源信息的種類。節(jié)點(diǎn)權(quán)值表示節(jié)點(diǎn)的處理能力,節(jié)點(diǎn)權(quán)值越高,該節(jié) 點(diǎn)的處理能力越強(qiáng),得到任務(wù)請(qǐng)求的機(jī)會(huì)也就越大。資源值是指所述資源信息的值。設(shè)置 資源負(fù)載權(quán)值的目的在于在資源采集時(shí)每種資源都會(huì)得到一個(gè)數(shù)值,但是由于各個(gè)資源 的類型不一致,對(duì)任務(wù)請(qǐng)求的處理所造成的影響也不一致,所以這里就需要將這個(gè)數(shù)值做 修飾,使各個(gè)資源基于統(tǒng)一的標(biāo)準(zhǔn)。例如,對(duì)于CPU使用率和線程使用率這兩種資源信息, 如果需要加大CPU對(duì)任務(wù)請(qǐng)求處理的影響則加重CPU使用率的資源負(fù)載權(quán)值,如果需要加 大線程對(duì)任務(wù)請(qǐng)求處理的影響則加重線程使用率的資源負(fù)載權(quán)值; 對(duì)各個(gè)子節(jié)點(diǎn)中的每一個(gè)子節(jié)點(diǎn)按如下處理得到該各個(gè)子節(jié)點(diǎn)各自的負(fù)載值分 別對(duì)該子節(jié)點(diǎn)的每一種資源信息的資源值和資源負(fù)載權(quán)值做乘積處理得到第一結(jié)果值,將 各種資源信息的第一結(jié)果值相加得到第二結(jié)果值,將該第二結(jié)果值與該子節(jié)點(diǎn)的節(jié)點(diǎn)權(quán)值 做乘積處理得到該子節(jié)點(diǎn)的負(fù)載值; 根據(jù)各個(gè)子節(jié)點(diǎn)的負(fù)載值確定出處理該任務(wù)請(qǐng)求的子節(jié)點(diǎn),具體地,根據(jù)預(yù)先配
置的規(guī)則,將各個(gè)子節(jié)點(diǎn)中負(fù)載值符合該規(guī)則的子節(jié)點(diǎn)確定為處理該任務(wù)請(qǐng)求的子節(jié)點(diǎn)。
在本發(fā)明的一種實(shí)施方式中,上述預(yù)先配置的規(guī)則可以是選擇該各個(gè)子節(jié)點(diǎn)中負(fù)載值最小
的子節(jié)點(diǎn),在本發(fā)明的其他實(shí)施方式中,上述預(yù)先配置的規(guī)則可以是選擇該各個(gè)子節(jié)點(diǎn)中
負(fù)載值次小的子節(jié)點(diǎn),或者可以由技術(shù)人員根據(jù)實(shí)際需要配置所述規(guī)則。 例如,集群系統(tǒng)中有m個(gè)子節(jié)點(diǎn),m是自然數(shù),可以由技術(shù)人員根據(jù)實(shí)際需要設(shè)置
集群系統(tǒng)中子節(jié)點(diǎn)的個(gè)數(shù),該m個(gè)子節(jié)點(diǎn)中的每一個(gè)子節(jié)點(diǎn)的各種資源信息共有n種,n是
自然數(shù),可以由技術(shù)人員根據(jù)實(shí)際需要設(shè)置應(yīng)該考慮的資源信息的種類,則 將節(jié)點(diǎn)權(quán)值記為M,該m個(gè)子節(jié)點(diǎn)的節(jié)點(diǎn)權(quán)值記為M = {M。, Mn M2, M3,. . . , Mm—卩,Mi
代表集群系統(tǒng)中第i個(gè)子節(jié)點(diǎn)的節(jié)點(diǎn)權(quán)值; 將資源值記為13 ,該n種資源信息的資源值記為13 = {|3。, 1^, P2, P3,...,
P J , 13 i代表第i種資源信息的資源值; 將資源負(fù)載權(quán)值記為W,該n種資源信息的資源負(fù)載權(quán)值記為W = {W。, W15 W2, W3, . . . , Wn—J , Wi代表第i種資源信息的資源負(fù)載權(quán)值; 將負(fù)載值記為L(zhǎng),該m個(gè)子節(jié)點(diǎn)的負(fù)載值記為L(zhǎng) = {L。, Ln L2, L3, . . . , Lm—卩,代
表第i個(gè)子節(jié)點(diǎn)的負(fù)載值。 那么,該集群系統(tǒng)中第k(k = 1,2,3, . . . , m)個(gè)子節(jié)點(diǎn)的負(fù)載值Lk為
;=2(『,/ ,)xM* 最后按照上述由技術(shù)人員根據(jù)實(shí)際需要配置的規(guī)則,將Lk(k = 1,2,3, . . . , m)的 值符合該規(guī)則的子節(jié)點(diǎn)確定為處理該任務(wù)請(qǐng)求的子節(jié)點(diǎn),具體而言,可以選擇Lk(k = 1,2, 3, . . . , m)中值最小的子節(jié)點(diǎn)為處理該任務(wù)請(qǐng)求的子節(jié)點(diǎn),當(dāng)然,也可以選擇Lk(k = 1,2, 3,. . . ,m)中值次小的子節(jié)點(diǎn)為處理該任務(wù)請(qǐng)求的子節(jié)點(diǎn),或者根據(jù)其他預(yù)先配置的規(guī)則確 定處理該任務(wù)請(qǐng)求的子節(jié)點(diǎn)。 在本發(fā)明的一種優(yōu)選實(shí)施方式中,所述資源信息還包括處理完畢的上一個(gè)任務(wù)請(qǐng) 求的信息,當(dāng)根據(jù)最小資源處理數(shù)算法和各種資源信息確定處理當(dāng)前任務(wù)請(qǐng)求的子節(jié)點(diǎn) 時(shí),就會(huì)考慮到該處理完畢的上一個(gè)任務(wù)請(qǐng)求的信息。由于任務(wù)請(qǐng)求的處理、響應(yīng)的時(shí)間比 子節(jié)點(diǎn)采集并發(fā)送資源信息的時(shí)間間隔短很多,不是一個(gè)數(shù)量級(jí)別,因此,采用這種優(yōu)選實(shí) 施方式,即使當(dāng)接收到的任務(wù)請(qǐng)求數(shù)量爆發(fā)性地增長(zhǎng)時(shí),也不會(huì)出現(xiàn)在上述時(shí)間間隔內(nèi)將 所有接收到的任務(wù)請(qǐng)求都發(fā)送給根據(jù)該算法和各種資源信息確定出的同一個(gè)子節(jié)點(diǎn)的情 況,不會(huì)因?yàn)槿蝿?wù)請(qǐng)求數(shù)量爆發(fā)性地增長(zhǎng)而影響整個(gè)集群系統(tǒng)的正常運(yùn)行。當(dāng)子節(jié)點(diǎn)再次 發(fā)送各種資源信息時(shí),新的資源信息替換掉原有資源信息,隨后繼續(xù)執(zhí)行根據(jù)最小資源處 理數(shù)算法和各種資源信息確定出處理任務(wù)請(qǐng)求的子節(jié)點(diǎn)的步驟。 此外,在S102中的實(shí)施方式一中,作為另一種優(yōu)選實(shí)施方式,所述資源信息還可
以包括各個(gè)子節(jié)點(diǎn)的平臺(tái)的狀態(tài)信息和/或各個(gè)子節(jié)點(diǎn)處理任務(wù)請(qǐng)求后的響應(yīng)信息,其
中,所述子節(jié)點(diǎn)的平臺(tái)的狀態(tài)信息包括平臺(tái)正常工作和平臺(tái)非正常工作,所述響應(yīng)信息包
括處理成功和處理失敗。在根據(jù)配置的最小資源處理數(shù)算法和各種資源信息確定處理該任
務(wù)請(qǐng)求的子節(jié)點(diǎn)之前,S102步驟還可以包括根據(jù)所述狀態(tài)信息和/或響應(yīng)信息判斷在所述
各個(gè)子節(jié)點(diǎn)中是否存在不可用的子節(jié)點(diǎn),當(dāng)判斷為否時(shí),繼續(xù)執(zhí)行所述根據(jù)配置的最小資
源處理數(shù)算法和各種資源信息確定出處理所述任務(wù)請(qǐng)求的子節(jié)點(diǎn)的步驟,當(dāng)判斷為是時(shí),
將所述不可用的子節(jié)點(diǎn)刪除,然后執(zhí)行所述根據(jù)配置的最小資源處理數(shù)算法和各種資源信
息確定出處理所述任務(wù)請(qǐng)求的子節(jié)點(diǎn)的步驟。其中,當(dāng)所述狀態(tài)信息為平臺(tái)非正常工作和
/或所述響應(yīng)信息為處理失敗的比例超出第一閾值時(shí),則判斷為存在不可用的子節(jié)點(diǎn),否
則判斷為不存在,其中,所述第一閾值可以由技術(shù)人員根據(jù)所述各個(gè)子節(jié)點(diǎn)處理的任務(wù)請(qǐng)
求的性質(zhì)進(jìn)行設(shè)置,例如,對(duì)于比較敏感的容錯(cuò)率較低的任務(wù)請(qǐng)求,可設(shè)置較低的第一閥值
(如20% ),對(duì)于容錯(cuò)率較高的任務(wù)請(qǐng)求,可設(shè)置較高的第一閾值(如50% ),當(dāng)然,所述第
一閾值并不限于上述兩種數(shù)值,技術(shù)人員可以根據(jù)實(shí)際需要對(duì)第一閾值進(jìn)行設(shè)置??蛇x地,
可以利用JAVA中的群組通訊工具JGroup的組管理機(jī)制來(lái)刪除所述不可用的子節(jié)點(diǎn)。通過(guò)
將不可用的子節(jié)點(diǎn)刪除,避免了分配錯(cuò)誤,提高了最小資源處理數(shù)算法的效率。 由上述可知,本發(fā)明實(shí)施例的S102中的實(shí)施方式一采用最小資源處理數(shù)算法,可
以由技術(shù)人員根據(jù)實(shí)際需要靈活地配置資源信息,即使當(dāng)集群系統(tǒng)中的子節(jié)點(diǎn)處理性能各
不相同時(shí),或者當(dāng)接收到任務(wù)請(qǐng)求的時(shí)間變化很大時(shí),都能夠在集群系統(tǒng)中實(shí)現(xiàn)合理的資
源分配。 下面對(duì)S102中的實(shí)施方式二作詳細(xì)的說(shuō)明。 實(shí)施方式二 根據(jù)配置的加權(quán)輪叫調(diào)度算法和至少兩個(gè)子節(jié)點(diǎn)分別發(fā)送的各種資 源信息確定出處理該任務(wù)請(qǐng)求的子節(jié)點(diǎn),具體為
9
根據(jù)所述各種資源信息為所述至少兩個(gè)子節(jié)點(diǎn)中的各個(gè)子節(jié)點(diǎn)設(shè)置權(quán)重值,其 中,所述資源信息包括線程使用率、CPU使用率、內(nèi)存使用率等,如上所述,子節(jié)點(diǎn)按照配置 的時(shí)間間隔定時(shí)采集并發(fā)送各種資源信息,因此當(dāng)子節(jié)點(diǎn)再次發(fā)送各種資源信息時(shí),新的 資源信息替換掉原有資源信息。當(dāng)然,本發(fā)明實(shí)施例的S102中的實(shí)施方式二并不限于上述 三種資源信息,還可以由技術(shù)人員根據(jù)實(shí)際需要設(shè)置應(yīng)該考慮的資源信息的種類。所述權(quán) 重值可以由技術(shù)人員根據(jù)實(shí)際需要以及所述資源信息進(jìn)行設(shè)置; 根據(jù)所述各個(gè)子節(jié)點(diǎn)的權(quán)重值確定出處理所述任務(wù)請(qǐng)求的子節(jié)點(diǎn),其中,權(quán)重值 表示各個(gè)子節(jié)點(diǎn)的處理能力,權(quán)重值之間的比例也就是該算法確定出的處理任務(wù)請(qǐng)求的子 節(jié)點(diǎn)的比例。例如,對(duì)于一個(gè)集群系統(tǒng)中的子節(jié)點(diǎn)S = {S。, Sn S2, . . . , Sn—J , n表示該集群 系統(tǒng)中的子節(jié)點(diǎn)的數(shù)目,S。的權(quán)重是1, S工的權(quán)重是5,則S工處理5次任務(wù)請(qǐng)求S。才會(huì)處理一次。 此外,在S102中的實(shí)施方式二中,作為另一種優(yōu)選實(shí)施方式,所述資源信息還可 以包括各個(gè)子節(jié)點(diǎn)的平臺(tái)的狀態(tài)信息和/或各個(gè)子節(jié)點(diǎn)處理任務(wù)請(qǐng)求后的響應(yīng)信息,并且 在根據(jù)配置的加權(quán)輪叫調(diào)度算法和各種資源信息確定處理該任務(wù)請(qǐng)求的子節(jié)點(diǎn)之前,S102 步驟還可以包括根據(jù)所述狀態(tài)信息和/或響應(yīng)信息判斷在所述各個(gè)子節(jié)點(diǎn)中是否存在不 可用的子節(jié)點(diǎn),當(dāng)判斷為否時(shí),繼續(xù)執(zhí)行所述根據(jù)配置的加權(quán)輪叫調(diào)度算法和各種資源信 息確定出處理所述任務(wù)請(qǐng)求的子節(jié)點(diǎn)的步驟,當(dāng)判斷為是時(shí),將所述不可用的子節(jié)點(diǎn)刪除, 然后執(zhí)行所述根據(jù)配置的加權(quán)輪叫調(diào)度算法和各種資源信息確定出處理所述任務(wù)請(qǐng)求的 子節(jié)點(diǎn)的步驟。其中,所述狀態(tài)信息和響應(yīng)信息以及判斷是否存在不可用的子節(jié)點(diǎn)的判斷 過(guò)程與S102中的實(shí)施方式一中的描述相同,此處不再贅述??蛇x地,可以利用JAVA中的群 組通訊工具JGroup的組管理機(jī)制來(lái)刪除所述不可用的子節(jié)點(diǎn)。通過(guò)將不可用的子節(jié)點(diǎn)刪 除,避免了分配錯(cuò)誤,提高了加權(quán)輪叫調(diào)度算法的效率。 由上述可知,本發(fā)明通過(guò)根據(jù)負(fù)載均衡策略和集群中的至少兩個(gè)子節(jié)點(diǎn)發(fā)送的各
種資源信息確定處理任務(wù)請(qǐng)求的子節(jié)點(diǎn)來(lái)實(shí)現(xiàn)系統(tǒng)的負(fù)載均衡,可以采用最小資源處理數(shù)
算法或者加權(quán)輪叫調(diào)度算法,無(wú)論采用哪種算法都可以根據(jù)實(shí)際需要實(shí)現(xiàn)靈活地配置,在
集群系統(tǒng)中實(shí)現(xiàn)合理的資源分配,使系統(tǒng)的處理效率得到最大的提高。 圖2是本發(fā)明的實(shí)現(xiàn)負(fù)載均衡的方法的實(shí)施例一。如圖2所示,該方法包括 S201,負(fù)載均衡服務(wù)器接收任務(wù)請(qǐng)求。該步驟與圖1中對(duì)SIOI的描述相同,此處
不再贅述。 S202,判斷是否需要做負(fù)載均衡處理,當(dāng)判斷為否時(shí),執(zhí)行S203,當(dāng)判斷為是時(shí),執(zhí) 行S204。具體地,根據(jù)所述負(fù)載均衡服務(wù)器的處理任務(wù)請(qǐng)求的處理量來(lái)判斷,當(dāng)該負(fù)載均衡 服務(wù)器的處理量達(dá)到或超出第二閾值時(shí),說(shuō)明該負(fù)載均衡服務(wù)器不能處理所述接收到的任 務(wù)請(qǐng)求,則判斷為需要做負(fù)載均衡處理,否則判斷為不需要做負(fù)載均衡處理。其中,所述第 二閾值可以由技術(shù)人員根據(jù)負(fù)載均衡服務(wù)器的處理能力進(jìn)行設(shè)置,例如,若該負(fù)載均衡服 務(wù)器的最大處理能力為每分鐘處理60個(gè)任務(wù)請(qǐng)求,那么為了保證系統(tǒng)的平穩(wěn)運(yùn)行,可以設(shè) 置第二閾值為每分鐘處理50個(gè)任務(wù)請(qǐng)求,當(dāng)然,這里只是舉例說(shuō)明,所述第二閾值并不限 于此,技術(shù)人員還可以根據(jù)實(shí)際需要設(shè)置第二閾值。
S203,由所述負(fù)載均衡服務(wù)器處理所述任務(wù)請(qǐng)求。 S204,根據(jù)負(fù)載均衡策略和至少兩個(gè)子節(jié)點(diǎn)分別發(fā)送的各種資源信息確定處理所述任務(wù)請(qǐng)求的子節(jié)點(diǎn)。該步驟與圖1中對(duì)S102的描述相同,此處不再贅述。 S205,將所述任務(wù)請(qǐng)求發(fā)送給確定出的子節(jié)點(diǎn)。該步驟與圖1中對(duì)S103的描述相
同,此處不再贅述。 實(shí)現(xiàn)負(fù)載均衡的方法的實(shí)施例一根據(jù)負(fù)載均衡服務(wù)器的處理量判斷是否需要做 負(fù)載均衡處理,在負(fù)載均衡服務(wù)器的處理量達(dá)到或超出第二閾值的情形下才做負(fù)載均衡處 理,與對(duì)所有接收到的任務(wù)請(qǐng)求都做負(fù)載均衡處理的方法相比,能夠減輕集群系統(tǒng)的負(fù)擔(dān), 加快集群系統(tǒng)的運(yùn)行速度。 圖3是本發(fā)明的實(shí)現(xiàn)負(fù)載均衡的方法的實(shí)施例二。如圖3所示,該方法包括
S301,負(fù)載均衡服務(wù)器接收任務(wù)請(qǐng)求。該步驟與圖1中對(duì)SIOI的描述相同,此處 不再贅述。 S302,根據(jù)所述任務(wù)請(qǐng)求判斷該任務(wù)請(qǐng)求的目標(biāo)節(jié)點(diǎn)是否是所述負(fù)載均衡服務(wù) 器,當(dāng)判斷為是時(shí),執(zhí)行S303,當(dāng)判斷為否時(shí),執(zhí)行S304。其中,所述任務(wù)請(qǐng)求的目標(biāo)節(jié)點(diǎn)是 由所述任務(wù)請(qǐng)求的請(qǐng)求報(bào)文指出。 S303,由該負(fù)載均衡服務(wù)器處理所述任務(wù)請(qǐng)求。 S304,根據(jù)負(fù)載均衡策略和至少兩個(gè)子節(jié)點(diǎn)分別發(fā)送的各種資源信息確定處理所
述任務(wù)請(qǐng)求的子節(jié)點(diǎn)。該步驟與圖1中對(duì)S102的描述相同,此處不再贅述。 S305,將該任務(wù)請(qǐng)求發(fā)送給確定出的子節(jié)點(diǎn)。該步驟與圖1中對(duì)S103的描述相同,
此處不再贅述。 此外,在本發(fā)明的另一種實(shí)施方式中,在S301之后,并且在S302之前,本發(fā)明的實(shí) 現(xiàn)負(fù)載均衡的方法的實(shí)施例二還可以包括判斷是否需要做負(fù)載均衡處理,當(dāng)判斷為否時(shí), 由負(fù)載均衡服務(wù)器處理所述任務(wù)請(qǐng)求,當(dāng)判斷為是時(shí),執(zhí)行所述根據(jù)任務(wù)請(qǐng)求判斷該任務(wù) 請(qǐng)求的目標(biāo)節(jié)點(diǎn)是否是負(fù)載均衡服務(wù)器的步驟。其中,所述判斷是否需要做負(fù)載均衡處理 的具體判斷過(guò)程與圖2中的S202的描述相同,此處不再贅述。 實(shí)現(xiàn)負(fù)載均衡的方法的實(shí)施例二不僅對(duì)是否需要做負(fù)載均衡進(jìn)行判斷,還要對(duì)接 收到的任務(wù)請(qǐng)求的目標(biāo)節(jié)點(diǎn)是否是負(fù)載均衡服務(wù)器進(jìn)行判斷,不僅實(shí)現(xiàn)了負(fù)載均衡的目 的,還滿足了對(duì)特定任務(wù)請(qǐng)求的處理需要。 圖4是本發(fā)明的一種集群系統(tǒng)1的結(jié)構(gòu)示意圖。如圖4所示,集群系統(tǒng)1包括
負(fù)載均衡服務(wù)器10以及與該負(fù)載均衡服務(wù)器10通信的至少兩個(gè)子節(jié)點(diǎn),包括第
一子節(jié)點(diǎn)11、第二子節(jié)點(diǎn)12........第N子節(jié)點(diǎn)13,其中,N是自然數(shù),技術(shù)人員可以根據(jù)
實(shí)際需要設(shè)置集群系統(tǒng)中的子節(jié)點(diǎn)的個(gè)數(shù)。 所述至少兩個(gè)子節(jié)點(diǎn)中的第一子節(jié)點(diǎn)11、第二子節(jié)點(diǎn)12........第N子節(jié)點(diǎn)13
用于按照配置的時(shí)間間隔定時(shí)分別采集各自的各種資源信息并將這些資源信息發(fā)送給負(fù) 載均衡服務(wù)器10。其中,所述各種資源信息包括線程使用率、CPU使用率、內(nèi)存使用率、正在 處理的任務(wù)請(qǐng)求數(shù)量、處理完畢的上一個(gè)任務(wù)請(qǐng)求的信息、各個(gè)子節(jié)點(diǎn)的平臺(tái)的狀態(tài)信息 等,還可以包括由技術(shù)人員根據(jù)實(shí)際需要以及不同的負(fù)載均衡策略所設(shè)定的其他信息。此 外,在所述至少兩個(gè)子節(jié)點(diǎn)中,被確定出處理任務(wù)請(qǐng)求的子節(jié)點(diǎn)還用于在接收到任務(wù)請(qǐng)求 后處理該任務(wù)請(qǐng)求,并且在處理完成之后將處理該任務(wù)請(qǐng)求的響應(yīng)信息作為所述資源信息 之一發(fā)送給負(fù)載均衡服務(wù)器10。 需要說(shuō)明的是,如果子節(jié)點(diǎn)過(guò)于頻繁的采集并發(fā)送資源信息,則會(huì)影響集群系統(tǒng)的性能和穩(wěn)定性,因此,在實(shí)際應(yīng)用中,通常以秒為單位來(lái)配置所述時(shí)間間隔。在本發(fā)明的
一種實(shí)施方式中,可以配置該時(shí)間間隔為5秒,在本發(fā)明的其他實(shí)施方式中,技術(shù)人員可以
在滿足集群系統(tǒng)的性能和穩(wěn)定性的基礎(chǔ)上根據(jù)實(shí)際情況靈活地配置該時(shí)間間隔。 負(fù)載均衡服務(wù)器10用于接收任務(wù)請(qǐng)求和至少兩個(gè)子節(jié)點(diǎn)分別發(fā)送的各種資源信
息,根據(jù)負(fù)載均衡策略和所述各種資源信息確定處理該任務(wù)請(qǐng)求的子節(jié)點(diǎn),并將該任務(wù)請(qǐng)
求發(fā)送給確定出的子節(jié)點(diǎn),從而實(shí)現(xiàn)負(fù)載均衡。 需要說(shuō)明的是,在集群1中,負(fù)載均衡服務(wù)器和各個(gè)子節(jié)點(diǎn)并不限于如圖4所示的 設(shè)置方式,可以在任意的子節(jié)點(diǎn)上進(jìn)行配置使其能夠?qū)崿F(xiàn)負(fù)載均衡的方法,則該任意的能 夠?qū)崿F(xiàn)負(fù)載均衡的方法的子節(jié)點(diǎn)均可作為負(fù)載均衡服務(wù)器。例如,若設(shè)置第一子節(jié)點(diǎn)11使 其實(shí)現(xiàn)負(fù)載均衡的方法,則第一子節(jié)點(diǎn)11也可以作為負(fù)載均衡服務(wù)器,當(dāng)負(fù)載均衡服務(wù)器 IO不能正常工作時(shí),則可以設(shè)置第一子節(jié)點(diǎn)11或其他任意的能夠?qū)崿F(xiàn)負(fù)載均衡的方法的 子節(jié)點(diǎn)作為新的負(fù)載均衡服務(wù)器替換負(fù)載均衡服務(wù)器10。 下面將結(jié)合圖5-圖8詳細(xì)闡述集群系統(tǒng)1中的負(fù)載均衡服務(wù)器10的結(jié)構(gòu)和功能。
圖5是本發(fā)明的集群系統(tǒng)1中的負(fù)載均衡服務(wù)器10的結(jié)構(gòu)示意圖。如圖5所示, 該負(fù)載均衡服務(wù)器10包括 接收模塊100,用于接收任務(wù)請(qǐng)求和圖4中的至少兩個(gè)子節(jié)點(diǎn)分別發(fā)送的各種資 源信息。 由于在集群系統(tǒng)中通常對(duì)添加類型的任務(wù)請(qǐng)求做負(fù)載均衡處理,因此,接收模塊 100接收到的任務(wù)請(qǐng)求指代本地添加任務(wù)請(qǐng)求或者遠(yuǎn)程添加任務(wù)請(qǐng)求。另外,為了給集群系 統(tǒng)提供一個(gè)接收任務(wù)請(qǐng)求的可靠、信賴的通路,本發(fā)明實(shí)施例優(yōu)選地采用MINA的點(diǎn)對(duì)點(diǎn)的 模式來(lái)接收任務(wù)請(qǐng)求,當(dāng)然,也可以采用基于TCP/IP socket通訊方式的其他模式接收。
負(fù)載均衡模塊101,用于根據(jù)負(fù)載均衡策略和接收模塊100接收到的各種資源信 息確定處理接收模塊100接收到的任務(wù)請(qǐng)求的子節(jié)點(diǎn)。 分配模塊102,用于將所述任務(wù)請(qǐng)求發(fā)送給負(fù)載均衡模塊101確定出的子節(jié)點(diǎn)。
其中,為了給集群系統(tǒng)提供一個(gè)發(fā)送任務(wù)請(qǐng)求的可靠、信賴的通路,本發(fā)明實(shí)施例 優(yōu)選地采用MINA的點(diǎn)對(duì)點(diǎn)的模式將任務(wù)請(qǐng)求發(fā)送到確定出的子節(jié)點(diǎn),當(dāng)然,也可以采用基 于TCP/IP socket通訊方式的其他模式發(fā)送。 圖6是本發(fā)明的負(fù)載均衡服務(wù)器10中的負(fù)載均衡模塊101的結(jié)構(gòu)示意圖。如圖 6所示,負(fù)載均衡模塊101包括 緩存單元1010,用于存儲(chǔ)接收模塊100接收到的至少兩個(gè)子節(jié)點(diǎn)分別發(fā)送的各種 資源信息。 特別地,根據(jù)上文所述,集群中的至少兩個(gè)子節(jié)點(diǎn)按照配置的時(shí)間間隔定時(shí)分別 采集并發(fā)送各種資源信息,那么,每當(dāng)子節(jié)點(diǎn)發(fā)送各種資源信息,接收模塊100接收到這些 資源信息之后,緩存單元1010就存儲(chǔ)這些資源信息并且同時(shí)替換掉原有資源信息。
第一確定單元1011,用于根據(jù)配置的最小資源處理數(shù)算法和緩存單元1010中存 儲(chǔ)的各種資源信息確定出處理任務(wù)請(qǐng)求的子節(jié)點(diǎn)。 第二確定單元1012,用于根據(jù)配置的加權(quán)輪叫調(diào)度算法和緩存單元1010中存儲(chǔ) 的各種資源信息確定出處理任務(wù)請(qǐng)求的子節(jié)點(diǎn)。 此外,在本發(fā)明的一種優(yōu)選實(shí)施方式中,負(fù)載均衡模塊101還可以包括刪除單元,定單元1011或者第二確定單元1012確定處理任務(wù)請(qǐng)求的子 節(jié)點(diǎn)之前,根據(jù)緩存單元1010中存儲(chǔ)的各種資源信息中的各個(gè)子節(jié)點(diǎn)的平臺(tái)的狀態(tài)信息 和/或各個(gè)子節(jié)點(diǎn)處理所述任務(wù)請(qǐng)求后的響應(yīng)信息判斷是否存在不可用的子節(jié)點(diǎn),當(dāng)判斷 為否時(shí),由第一確定單元1011或者第二確定單元1012進(jìn)行處理,當(dāng)判斷為是時(shí),將所述不 可用的子節(jié)點(diǎn)刪除,然后由第一確定單元1011或者第二確定單元1012進(jìn)行處理。可選地, 利用JAVA中的群組通訊工具JGroup的組管理機(jī)制來(lái)刪除不可用的子節(jié)點(diǎn)。通過(guò)將不可用 的子節(jié)點(diǎn)刪除,避免了分配錯(cuò)誤,提高了最小資源處理數(shù)算法的效率。 圖7是本發(fā)明的集群系統(tǒng)1中的負(fù)載均衡服務(wù)器10的實(shí)施例一。如圖7所示, 負(fù)載均衡服務(wù)器10包括接收模塊100、負(fù)載均衡模塊101、分配模塊102和第一判斷模塊 103,其中, 接收模塊100、負(fù)載均衡模塊101、分配模塊102的功能與在圖5中的描述相同,此 處不再贅述。 第一判斷模塊103,用于實(shí)現(xiàn)如下功能 在接收模塊100接收任務(wù)請(qǐng)求之后,判斷是否需要做負(fù)載均衡處理,
當(dāng)判斷為否時(shí),由負(fù)載均衡服務(wù)器10處理所述任務(wù)請(qǐng)求,
當(dāng)判斷為是時(shí),由負(fù)載均衡模塊101處理。 圖8是本發(fā)明的集群系統(tǒng)1中的負(fù)載均衡服務(wù)器10的實(shí)施例二。如圖8所示,負(fù) 載均衡服務(wù)器10包括接收模塊100、負(fù)載均衡模塊101、分配模塊102、第二判斷模塊104, 其中, 接收模塊100、負(fù)載均衡模塊101、分配模塊102的功能與在圖5中的描述相同,此 處不再贅述。 第二判斷模塊104,用于實(shí)現(xiàn)如下功能 在接收模塊100接收任務(wù)請(qǐng)求之后,根據(jù)所述任務(wù)請(qǐng)求判斷該任務(wù)請(qǐng)求的目標(biāo)節(jié) 點(diǎn)是否是負(fù)載均衡服務(wù)器10, 當(dāng)判斷為否時(shí),由負(fù)載均衡模塊101處理, 當(dāng)判斷為是時(shí),由負(fù)載均衡服務(wù)器10處理所述任務(wù)請(qǐng)求。 圖9是本發(fā)明的集群系統(tǒng)1中的負(fù)載均衡服務(wù)器10的實(shí)施例三。如圖9所示,負(fù) 載均衡服務(wù)器10包括接收模塊100、負(fù)載均衡模塊101、分配模塊102、第三判斷模塊105, 其中, 接收模塊100、負(fù)載均衡模塊101、分配模塊102的功能與在圖5中的描述相同,此 處不再贅述。 第三判斷模塊106,用于實(shí)現(xiàn)如下功能 在接收模塊100接收任務(wù)請(qǐng)求之后,判斷是否需要做負(fù)載均衡處理,
當(dāng)判斷為否時(shí),由負(fù)載均衡服務(wù)器10處理所述任務(wù)請(qǐng)求, 當(dāng)判斷為是時(shí),根據(jù)所述任務(wù)請(qǐng)求判斷該任務(wù)請(qǐng)求的目標(biāo)節(jié)點(diǎn)是否是負(fù)載均衡服 務(wù)器10, 當(dāng)判斷為不是負(fù)載均衡服務(wù)器10時(shí),由負(fù)載均衡模塊101處理, 當(dāng)判斷為是負(fù)載均衡服務(wù)器10時(shí),由負(fù)載均衡服務(wù)器10處理所述任務(wù)請(qǐng)求。 綜上所述,本發(fā)明的一種實(shí)現(xiàn)負(fù)載均衡的方法、負(fù)載均衡服務(wù)器以及集群系統(tǒng)通
13過(guò)根據(jù)負(fù)載均衡策略和集群中的至少兩個(gè)子節(jié)點(diǎn)分別發(fā)送的各種資源信息確定處理任務(wù) 請(qǐng)求的子節(jié)點(diǎn),在集群系統(tǒng)中實(shí)現(xiàn)合理的資源分配,從而實(shí)現(xiàn)系統(tǒng)的負(fù)載均衡,具有對(duì)原有 數(shù)據(jù)處理流程的透明性,使集群部署不影響原有系統(tǒng),并且可以根據(jù)需要實(shí)現(xiàn)靈活的配置, 能夠與平臺(tái)完全融合,使系統(tǒng)的處理效率得到最大的提高。 通過(guò)以上實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借助軟 件結(jié)合硬件平臺(tái)的方式來(lái)實(shí)現(xiàn),當(dāng)然也可以全部通過(guò)硬件來(lái)實(shí)施。基于這樣的理解,本發(fā)明 的技術(shù)方案對(duì)背景技術(shù)做出貢獻(xiàn)的全部或者部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算 機(jī)軟件產(chǎn)品可以存儲(chǔ)在存儲(chǔ)介質(zhì)中,如ROM/RAM、磁碟、光盤等,包括若干指令用以使得一臺(tái) 計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例或者實(shí) 施例的某些部分所述的方法。 以上所公開(kāi)的僅為本發(fā)明的具體實(shí)施方式
,僅用于對(duì)本發(fā)明進(jìn)行舉例說(shuō)明,不能 以此限定本發(fā)明之保護(hù)范圍,本領(lǐng)域技術(shù)人員在不脫離本發(fā)明實(shí)質(zhì)的前提下可以進(jìn)行各種 修改、變化或替換,因此,依照本發(fā)明所作的各種等同變化,仍屬于本發(fā)明所涵蓋的范圍。
權(quán)利要求
一種實(shí)現(xiàn)負(fù)載均衡的方法,其特征在于,所述方法包括負(fù)載均衡服務(wù)器接收任務(wù)請(qǐng)求,根據(jù)負(fù)載均衡策略和至少兩個(gè)子節(jié)點(diǎn)分別發(fā)送的各種資源信息確定處理所述任務(wù)請(qǐng)求的子節(jié)點(diǎn),將所述任務(wù)請(qǐng)求發(fā)送給確定出的子節(jié)點(diǎn)。
2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)負(fù)載均衡策略和至少兩個(gè)子節(jié)點(diǎn)分別發(fā)送的各種資源信息確定處理所述任務(wù)請(qǐng)求的子節(jié)點(diǎn)包括根據(jù)配置的最小資源處理數(shù)算法和所述各種資源信息確定出處理所述任務(wù)請(qǐng)求的子節(jié)點(diǎn)。
3. 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述根據(jù)配置的最小資源處理數(shù)算法和各種資源信息確定出處理所述任務(wù)請(qǐng)求的子節(jié)點(diǎn)包括為所述至少兩個(gè)子節(jié)點(diǎn)中的各個(gè)子節(jié)點(diǎn)設(shè)置節(jié)點(diǎn)權(quán)值,為所述各種資源信息中的每一種資源信息設(shè)置資源值和資源負(fù)載權(quán)值;對(duì)所述各個(gè)子節(jié)點(diǎn)中的每一個(gè)子節(jié)點(diǎn)按如下處理得到各個(gè)子節(jié)點(diǎn)各自的負(fù)載值分別對(duì)該子節(jié)點(diǎn)的每一種資源信息的資源值和資源負(fù)載權(quán)值做乘積處理得到第一結(jié)果值,將各種資源信息的第一結(jié)果值相加得到第二結(jié)果值,將所述第二結(jié)果值與該子節(jié)點(diǎn)的節(jié)點(diǎn)權(quán)值做乘積處理得到該子節(jié)點(diǎn)的負(fù)載值;根據(jù)所述各個(gè)子節(jié)點(diǎn)的負(fù)載值確定出處理所述任務(wù)請(qǐng)求的子節(jié)點(diǎn)。
4. 根據(jù)權(quán)利要求3所述的方法,其特征在于,所述根據(jù)各個(gè)子節(jié)點(diǎn)的負(fù)載值確定出處理所述任務(wù)請(qǐng)求的子節(jié)點(diǎn)為根據(jù)預(yù)先配置的規(guī)則,將所述各個(gè)子節(jié)點(diǎn)中負(fù)載值符合該規(guī)則的子節(jié)點(diǎn)確定為處理所述任務(wù)請(qǐng)求的子節(jié)點(diǎn)。
5. 根據(jù)權(quán)利要求3所述的方法,其特征在于,所述資源信息包括線程使用率、CPU使用率、內(nèi)存使用率、正在處理的任務(wù)請(qǐng)求數(shù)量和處理完畢的上一個(gè)任務(wù)請(qǐng)求的信息。
6. 根據(jù)權(quán)利要求5所述的方法,其特征在于,所述資源信息還包括所述各個(gè)子節(jié)點(diǎn)的平臺(tái)的狀態(tài)信息和/或所述各個(gè)子節(jié)點(diǎn)處理所述任務(wù)請(qǐng)求后的響應(yīng)信息;在所述根據(jù)配置的最小資源處理數(shù)算法和各種資源信息確定出處理所述任務(wù)請(qǐng)求的子節(jié)點(diǎn)之前,所述根據(jù)負(fù)載均衡策略和至少兩個(gè)子節(jié)點(diǎn)分別發(fā)送的各種資源信息確定處理所述任務(wù)請(qǐng)求的子節(jié)點(diǎn)還包括根據(jù)所述狀態(tài)信息和/或響應(yīng)信息判斷在所述各個(gè)子節(jié)點(diǎn)中是否存在不可用的子節(jié)點(diǎn),當(dāng)判斷為否時(shí),繼續(xù)執(zhí)行所述根據(jù)配置的最小資源處理數(shù)算法和各種資源信息確定出處理所述任務(wù)請(qǐng)求的子節(jié)點(diǎn)的步驟,當(dāng)判斷為是時(shí),將所述不可用的子節(jié)點(diǎn)刪除,然后執(zhí)行所述根據(jù)配置的最小資源處理數(shù)算法和各種資源信息確定出處理所述任務(wù)請(qǐng)求的子節(jié)點(diǎn)的步驟。
7. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)負(fù)載均衡策略和至少兩個(gè)子節(jié)點(diǎn)分別發(fā)送的各種資源信息確定處理所述任務(wù)請(qǐng)求的子節(jié)點(diǎn)包括根據(jù)配置的加權(quán)輪叫調(diào)度算法和所述各種資源信息確定出處理所述任務(wù)請(qǐng)求的子節(jié)點(diǎn)。
8. 根據(jù)權(quán)利要求7所述的方法,其特征在于,所述根據(jù)配置的加權(quán)輪叫調(diào)度算法和所述各種資源信息確定出處理所述任務(wù)請(qǐng)求的子節(jié)點(diǎn)包括根據(jù)所述各種資源信息為所述至少兩個(gè)子節(jié)點(diǎn)中的各個(gè)子節(jié)點(diǎn)設(shè)置權(quán)重值; 根據(jù)所述各個(gè)子節(jié)點(diǎn)的權(quán)重值確定出處理所述任務(wù)請(qǐng)求的子節(jié)點(diǎn)。
9. 根據(jù)權(quán)利要求7所述的方法,其特征在于,所述資源信息包括 線程使用率、CPU使用率、內(nèi)存使用率。
10. 根據(jù)權(quán)利要求9所述的方法,其特征在于,所述資源信息還包括所述各個(gè)子節(jié)點(diǎn)的平臺(tái)的狀態(tài)信息和/或所述各個(gè)子節(jié)點(diǎn)處理 所述任務(wù)請(qǐng)求后的響應(yīng)信息;在所述根據(jù)配置的加權(quán)輪叫調(diào)度算法和各種資源信息確定出處理所述任務(wù)請(qǐng)求的子 節(jié)點(diǎn)之前,所述根據(jù)負(fù)載均衡策略和至少兩個(gè)子節(jié)點(diǎn)分別發(fā)送的各種資源信息確定處理所 述任務(wù)請(qǐng)求的子節(jié)點(diǎn)還包括根據(jù)所述狀態(tài)信息和/或響應(yīng)信息判斷在所述各個(gè)子節(jié)點(diǎn)中是否存在不可用的子節(jié)點(diǎn),當(dāng)判斷為否時(shí),繼續(xù)執(zhí)行所述根據(jù)配置的加權(quán)輪叫調(diào)度算法和各種資源信息確定出處 理所述任務(wù)請(qǐng)求的子節(jié)點(diǎn)的步驟,當(dāng)判斷為是時(shí),將所述不可用的子節(jié)點(diǎn)刪除,然后執(zhí)行所述根據(jù)配置的加權(quán)輪叫調(diào)度 算法和各種資源信息確定出處理所述任務(wù)請(qǐng)求的子節(jié)點(diǎn)的步驟。
11. 根據(jù)權(quán)利要求1所述的方法,其特征在于,在所述負(fù)載均衡服務(wù)器接收任務(wù)請(qǐng)求之 后,并且在根據(jù)負(fù)載均衡策略和至少兩個(gè)子節(jié)點(diǎn)分別發(fā)送的各種資源信息確定處理所述任 務(wù)請(qǐng)求的子節(jié)點(diǎn)之前,所述方法還包括負(fù)載均衡服務(wù)器判斷是否需要做負(fù)載均衡處理, 當(dāng)判斷為否時(shí),由該負(fù)載均衡服務(wù)器處理所述任務(wù)請(qǐng)求,當(dāng)判斷為是時(shí),執(zhí)行所述根據(jù)負(fù)載均衡策略和至少兩個(gè)子節(jié)點(diǎn)分別發(fā)送的各種資源信 息確定處理所述任務(wù)請(qǐng)求的子節(jié)點(diǎn)的步驟。
12. 根據(jù)權(quán)利要求1所述的方法,其特征在于,在所述負(fù)載均衡服務(wù)器接收任務(wù)請(qǐng)求之 后,并且在根據(jù)負(fù)載均衡策略和至少兩個(gè)子節(jié)點(diǎn)分別發(fā)送的各種資源信息確定處理所述任 務(wù)請(qǐng)求的子節(jié)點(diǎn)之前,所述方法還包括負(fù)載均衡服務(wù)器根據(jù)所述任務(wù)請(qǐng)求判斷該任務(wù)請(qǐng)求的目標(biāo)節(jié)點(diǎn)是否是所述負(fù)載均衡 服務(wù)器,當(dāng)判斷為是時(shí),由該負(fù)載均衡服務(wù)器處理所述任務(wù)請(qǐng)求,當(dāng)判斷為否時(shí),執(zhí)行所述根據(jù)負(fù)載均衡策略和至少兩個(gè)子節(jié)點(diǎn)分別發(fā)送的各種資源信 息確定處理所述任務(wù)請(qǐng)求的子節(jié)點(diǎn)的步驟。
13. 根據(jù)權(quán)利要求12所述的方法,其特征在于,在所述負(fù)載均衡服務(wù)器接收任務(wù)請(qǐng)求 之后,并且在根據(jù)任務(wù)請(qǐng)求判斷該任務(wù)請(qǐng)求的目標(biāo)節(jié)點(diǎn)是否是所述負(fù)載均衡服務(wù)器之前, 所述方法還包括負(fù)載均衡服務(wù)器判斷是否需要做負(fù)載均衡處理,當(dāng)判斷為否時(shí),由該負(fù)載均衡服務(wù)器處理所述任務(wù)請(qǐng)求,當(dāng)判斷為是時(shí),執(zhí)行所述根據(jù)任務(wù)請(qǐng)求判斷該任務(wù)請(qǐng)求的目標(biāo)節(jié)點(diǎn)是否是所述負(fù)載均 衡服務(wù)器的步驟。
14. 一種負(fù)載均衡服務(wù)器,其特征在于,所述負(fù)載均衡服務(wù)器包括 接收模塊,用于接收任務(wù)請(qǐng)求和至少兩個(gè)子節(jié)點(diǎn)分別發(fā)送的各種資源信息; 負(fù)載均衡模塊,用于根據(jù)負(fù)載均衡策略和所述各種資源信息確定處理所述任務(wù)請(qǐng)求的子節(jié)點(diǎn);分配模塊,用于將所述任務(wù)請(qǐng)求發(fā)送給確定出的子節(jié)點(diǎn)。
15. 根據(jù)權(quán)利要求14所述的負(fù)載均衡服務(wù)器,其特征在于,所述負(fù)載均衡模塊包括 緩存單元,用于存儲(chǔ)所述接收模塊接收到的至少兩個(gè)子節(jié)點(diǎn)分別發(fā)送的各種資源信息;第一確定單元,用于根據(jù)配置的最小資源處理數(shù)算法和所述各種資源信息確定出處理 所述任務(wù)請(qǐng)求的子節(jié)點(diǎn);或者第二確定單元,用于根據(jù)配置的加權(quán)輪叫調(diào)度算法和所述各種資源信息確定出處理所 述任務(wù)請(qǐng)求的子節(jié)點(diǎn)。
16. 根據(jù)權(quán)利要求15所述的負(fù)載均衡服務(wù)器,其特征在于,所述負(fù)載均衡模塊還包括 刪除單元,用于實(shí)現(xiàn)如下功能根據(jù)所述緩存單元中存儲(chǔ)的各種資源信息中的各個(gè)子節(jié)點(diǎn)的平臺(tái)的狀態(tài)信息和/或 各個(gè)子節(jié)點(diǎn)處理所述任務(wù)請(qǐng)求后的響應(yīng)信息判斷在所述各個(gè)子節(jié)點(diǎn)中是否存在不可用的 子節(jié)點(diǎn),當(dāng)判斷為否時(shí),由所述第一確定單元或者所述第二確定單元進(jìn)行處理, 當(dāng)判斷為是時(shí),將所述不可用的子節(jié)點(diǎn)刪除,然后由所述第一確定單元或者所述第二 確定單元進(jìn)行處理。
17. 根據(jù)權(quán)利要求14所述的負(fù)載均衡服務(wù)器,其特征在于,所述負(fù)載均衡服務(wù)器還包括第一判斷模塊,用于實(shí)現(xiàn)如下功能在所述接收模塊接收任務(wù)請(qǐng)求之后,判斷是否需要做負(fù)載均衡處理, 當(dāng)判斷為否時(shí),由該負(fù)載均衡服務(wù)器處理所述任務(wù)請(qǐng)求, 當(dāng)判斷為是時(shí),由所述第一確定單元或者所述第二確定單元進(jìn)行處理。
18. 根據(jù)權(quán)利要求14所述的負(fù)載均衡服務(wù)器,其特征在于,所述負(fù)載均衡服務(wù)器還包括第二判斷模塊,用于實(shí)現(xiàn)如下功能在所述接收模塊接收任務(wù)請(qǐng)求之后,根據(jù)所述任務(wù)請(qǐng)求判斷該任務(wù)請(qǐng)求的目標(biāo)節(jié)點(diǎn)是 否是所述負(fù)載均衡服務(wù)器,當(dāng)判斷為否時(shí),由所述第一確定單元或者所述第二確定單元進(jìn)行處理, 當(dāng)判斷為是時(shí),由該負(fù)載均衡服務(wù)器處理所述任務(wù)請(qǐng)求。
19. 根據(jù)權(quán)利要求14所述的負(fù)載均衡服務(wù)器,其特征在于,所述負(fù)載均衡服務(wù)器還包括第三判斷模塊,用于實(shí)現(xiàn)如下功能在所述接收模塊接收任務(wù)請(qǐng)求之后,判斷是否需要做負(fù)載均衡處理, 當(dāng)判斷為否時(shí),由該負(fù)載均衡服務(wù)器處理所述任務(wù)請(qǐng)求,當(dāng)判斷為是時(shí),根據(jù)所述任務(wù)請(qǐng)求判斷該任務(wù)請(qǐng)求的目標(biāo)節(jié)點(diǎn)是否是所述負(fù)載均衡服 務(wù)器,當(dāng)判斷為不是所述負(fù)載均衡服務(wù)器時(shí),由所述第一確定單元或者所述第二確定單元進(jìn) 行處理,當(dāng)判斷為是所述負(fù)載均衡服務(wù)器時(shí),由該負(fù)載均衡服務(wù)器處理所述任務(wù)請(qǐng)求。
20. —種集群系統(tǒng),其特征在于,包括至少兩個(gè)子節(jié)點(diǎn)和如權(quán)利要求14至19中任意一項(xiàng)所述的負(fù)載均衡服務(wù)器;其中,所述至少兩個(gè)子節(jié)點(diǎn)分別采集各自的各種資源信息,并將所述各種資源信息發(fā)送給負(fù)載均衡服務(wù)器,所述負(fù)載均衡服務(wù)器接收任務(wù)請(qǐng)求和所述各種資源信息,根據(jù)負(fù)載均衡策略和所述各種資源信息確定處理該任務(wù)請(qǐng)求的子節(jié)點(diǎn),并將該任務(wù)請(qǐng)求發(fā)送給確定出的子節(jié)點(diǎn)。
全文摘要
本發(fā)明公開(kāi)了一種集群系統(tǒng),該集群系統(tǒng)包括負(fù)載均衡服務(wù)器和至少兩個(gè)子節(jié)點(diǎn),其中,所述至少兩個(gè)子節(jié)點(diǎn)分別采集各自的各種資源信息,并將這些資源信息發(fā)送給負(fù)載均衡服務(wù)器,負(fù)載均衡服務(wù)器接收任務(wù)請(qǐng)求和所述各種資源信息,根據(jù)負(fù)載均衡策略和所述各種資源信息確定處理該任務(wù)請(qǐng)求的子節(jié)點(diǎn),并將該任務(wù)請(qǐng)求發(fā)送給確定出的子節(jié)點(diǎn)。相應(yīng)地,本發(fā)明還公開(kāi)了一種實(shí)現(xiàn)負(fù)載均衡的方法和負(fù)載均衡服務(wù)器。本發(fā)明根據(jù)負(fù)載均衡策略和集群系統(tǒng)中的至少兩個(gè)子節(jié)點(diǎn)分別發(fā)送的各種資源信息確定處理任務(wù)請(qǐng)求的子節(jié)點(diǎn),在集群系統(tǒng)中實(shí)現(xiàn)最合理的資源分配,并且可以根據(jù)需要實(shí)現(xiàn)靈活的配置,使系統(tǒng)的處理效率得到最大的提高。
文檔編號(hào)H04L12/56GK101753461SQ20101000226
公開(kāi)日2010年6月23日 申請(qǐng)日期2010年1月14日 優(yōu)先權(quán)日2010年1月14日
發(fā)明者吳煒?biāo)? 張立鋒, 施健, 景培培, 楊芬, 顧潤(rùn)喆 申請(qǐng)人:中國(guó)建設(shè)銀行股份有限公司