專利名稱:在多個(gè)服務(wù)器之間實(shí)現(xiàn)負(fù)載均衡的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)信息技術(shù)領(lǐng)域,特別涉及一種在多個(gè)服務(wù)器之間實(shí)現(xiàn)負(fù)載均衡的方法。
背景技術(shù):
隨著信息技術(shù)的快速發(fā)展,面向服務(wù)的應(yīng)用程序架構(gòu)已經(jīng)得到了廣泛的應(yīng)用,以服務(wù)的形式向用戶提供應(yīng)用的模式已經(jīng)成熟。在很多的應(yīng)用場景中,信息系統(tǒng)中通常需要設(shè)置多個(gè)功能相同或相似的業(yè)務(wù)服務(wù) 器,然后由系統(tǒng)根據(jù)地域關(guān)系等邏輯將這些業(yè)務(wù)服務(wù)器劃分到不同的區(qū)域中。用戶則需要根據(jù)其所在區(qū)域等邏輯,訪問其中的某個(gè)業(yè)務(wù)服務(wù)器,以實(shí)現(xiàn)相應(yīng)的業(yè)務(wù)。但是,在上述的業(yè)務(wù)處理方式中,因?yàn)椴煌瑓^(qū)域的用戶數(shù)量一般并不相同,不同區(qū)域的用戶訪問量一般也是不均衡的,因此容易造成某些區(qū)域的某些服務(wù)器的業(yè)務(wù)比較繁忙,負(fù)載較大,用戶需要排隊(duì)等待;而另一些區(qū)域的另一些服務(wù)器則業(yè)務(wù)較少,負(fù)載較小,從而會出現(xiàn)部分系統(tǒng)資源閑置的情況,所以,在現(xiàn)有技術(shù)中,一般都需要在多個(gè)服務(wù)器之間均衡負(fù)載。為了解決上述服務(wù)器負(fù)載不均衡的問題,現(xiàn)有的技術(shù)方案通常是預(yù)先設(shè)置一個(gè)特定的負(fù)載均衡平臺,然后借助該負(fù)載均衡平臺,從服務(wù)器的底層環(huán)境著手,在多個(gè)服務(wù)器之間控制和調(diào)整工作負(fù)載。但是,在很多實(shí)際應(yīng)用場景中,信息系統(tǒng)的應(yīng)用環(huán)境比較復(fù)雜,系統(tǒng)的軟硬件條件可能并不符合建立負(fù)載均衡平臺的基本要求,因此無法在服務(wù)器底層建立負(fù)載均衡機(jī)制,從而無法實(shí)現(xiàn)服務(wù)器之間的負(fù)載均衡。。由上可知,現(xiàn)有技術(shù)中的實(shí)現(xiàn)多個(gè)服務(wù)器間的負(fù)載均衡的方法還存在上述的一些問題,因此,有必要提供一種更好的在多個(gè)服務(wù)器之間實(shí)現(xiàn)負(fù)載均衡的方法,從而可在不設(shè)置特定的負(fù)載均衡平臺的條件下,實(shí)現(xiàn)服務(wù)器之間的負(fù)載均衡。
發(fā)明內(nèi)容
根據(jù)本發(fā)明,提供了一種在多個(gè)服務(wù)器之間實(shí)現(xiàn)負(fù)載均衡的方法,從而可在不設(shè)置特定的負(fù)載均衡平臺的條件下,實(shí)現(xiàn)服務(wù)器之間的負(fù)載均衡。根據(jù)本發(fā)明的一種在多個(gè)服務(wù)器之間實(shí)現(xiàn)負(fù)載均衡的方法,該方法包括系統(tǒng)中的每個(gè)服務(wù)器均獲知系統(tǒng)中其它服務(wù)器的地址信息;各個(gè)服務(wù)器監(jiān)控自身的負(fù)載情況,并向系統(tǒng)中的其它服務(wù)器廣播自身的負(fù)載情況;當(dāng)當(dāng)前服務(wù)器接收到新工作任務(wù)且當(dāng)前服務(wù)器滿足預(yù)設(shè)的負(fù)載轉(zhuǎn)移條件時(shí),根據(jù)系統(tǒng)中其它服務(wù)器的負(fù)載情況選擇一個(gè)服務(wù)器;當(dāng)前服務(wù)器與被選擇的服務(wù)器建立連接,將所述新工作任務(wù)轉(zhuǎn)移至被選擇的服務(wù)器;被選擇的服務(wù)器對所述新工作任務(wù)進(jìn)行處理,并將處理結(jié)果發(fā)送給當(dāng)前服務(wù)器。
其中,所述系統(tǒng)中的每個(gè)服務(wù)器均獲知系統(tǒng)中其它服務(wù)器的地址信息包括預(yù)先設(shè)置一個(gè)系統(tǒng)共享的用于存儲系統(tǒng)中所有服務(wù)器的地址信息的配置文件或數(shù)據(jù)庫;各個(gè)服務(wù)器通過訪問所述配置文件或數(shù)據(jù)庫獲知系統(tǒng)中其它服務(wù)器的地址信息。其中,該方法還進(jìn)一步包括當(dāng)系統(tǒng)中新增或刪減服務(wù)器 時(shí),以排他方式在配置文件或數(shù)據(jù)庫中新增或刪除相應(yīng)的地址信息。其中,所述系統(tǒng)中的每個(gè)服務(wù)器均獲知系統(tǒng)中其它服務(wù)器的地址信息包括在系統(tǒng)中的每個(gè)服務(wù)器中都存儲系統(tǒng)中其它服務(wù)器的地址信息。其中,該方法進(jìn)一步包括在每個(gè)服務(wù)器中都預(yù)先設(shè)置一個(gè)用于存儲系統(tǒng)中其它服務(wù)器的地址信息的負(fù)載情況列表。其中,該方法進(jìn)一步包括當(dāng)系統(tǒng)中新增或刪減服務(wù)器時(shí),系統(tǒng)通知各個(gè)服務(wù)器在各自存儲的負(fù)載情況列表中新增或刪除相應(yīng)的地址信息。其中,該方法進(jìn)一步包括當(dāng)系統(tǒng)中新增服務(wù)器時(shí),系統(tǒng)將系統(tǒng)中已有服務(wù)器的地址信息發(fā)送給所述新增的服務(wù)器。其中,所述負(fù)載情況包括內(nèi)存占用情況、處理器占用情況和網(wǎng)絡(luò)連接數(shù)。其中,所述向系統(tǒng)中的其它服務(wù)器廣播自身的負(fù)載情況包括根據(jù)自身的負(fù)載情況和預(yù)先設(shè)置的負(fù)載等級,按照預(yù)設(shè)的周期向系統(tǒng)中的其它服務(wù)器廣播自身的負(fù)載等級。其中,所述負(fù)載等級包括I級空閑、2級空閑、3級空閑、I級繁忙、2級繁忙和3級繁忙。其中,該方法還進(jìn)一步包括各個(gè)服務(wù)器將其它服務(wù)器的負(fù)載情況記錄在負(fù)載情況列表中。其中,所述預(yù)設(shè)的負(fù)載轉(zhuǎn)移條件為當(dāng)前服務(wù)器的負(fù)載情況大于或等于預(yù)設(shè)的負(fù)載閾值。其中,所述負(fù)載閾值為預(yù)先確定的一個(gè)負(fù)載等級。其中,所述根據(jù)系統(tǒng)中其它服務(wù)器的負(fù)載情況選擇一個(gè)服務(wù)器包括從自身存儲的負(fù)載情況列表中選擇一個(gè)負(fù)載情況小于預(yù)設(shè)的負(fù)載閾值且負(fù)載最輕的服務(wù)器。其中,所述根據(jù)系統(tǒng)中其它服務(wù)器的負(fù)載情況選擇一個(gè)服務(wù)器包括為自身存儲的負(fù)載情況列表中的各個(gè)服務(wù)器分別設(shè)置加權(quán)值,并生成加權(quán)后的負(fù)載情況;從自身存儲的負(fù)載情況列表中選擇一個(gè)加權(quán)后的負(fù)載情況小于預(yù)設(shè)的負(fù)載閾值且負(fù)載最輕的服務(wù)器。其中,該方法還進(jìn)一步包括
如果當(dāng)前服務(wù)器與被選擇的服務(wù)器建立連接失敗,則當(dāng)前服務(wù)器在自身存儲的負(fù)載情況列表中下調(diào)該被選擇的服務(wù)器的加權(quán)值,返回執(zhí)行根據(jù)系統(tǒng)中其它服務(wù)器的負(fù)載情況選擇一個(gè)服務(wù)器的步驟。由上述技術(shù)方案可見,在本發(fā)明中的在多個(gè)服務(wù)器之間實(shí)現(xiàn)負(fù)載均衡的方法中,由于系統(tǒng)中的每個(gè)服務(wù)器均獲知系統(tǒng)中其它服務(wù)器的地址信息并可向系統(tǒng)中的其它服務(wù)器廣播自身的負(fù)載情況,因此如果當(dāng)前服務(wù)器負(fù)載較重且接收到新工作任務(wù)時(shí),可從系統(tǒng)中的其它服務(wù)器中選擇一個(gè)負(fù)載最輕的服務(wù)器,并將新工作任務(wù)轉(zhuǎn)移至被選擇的服務(wù)器,由被選擇的服務(wù)器對所述新工作任務(wù)進(jìn)行處理,并將處理結(jié)果發(fā)送給當(dāng)前服務(wù)器,從而可在不設(shè)置特定的負(fù)載均衡平臺的條件下,實(shí)現(xiàn)服務(wù)器之間的負(fù)載均衡,大大提高系統(tǒng)的資源利用率。
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,以下將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹。顯而易見地,以下描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員而言,還可以根據(jù)這些附圖所示實(shí)施例得到其它的實(shí)施例及其附圖。圖I為本發(fā)明實(shí)施例中的在多個(gè)服務(wù)器之間實(shí)現(xiàn)負(fù)載均衡的方法的流程示意圖。
具體實(shí)施例方式為使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下參照附圖并舉實(shí)施例,對本發(fā)明進(jìn)一步詳細(xì)說明。圖I為本發(fā)明實(shí)施例中的在多個(gè)服務(wù)器之間實(shí)現(xiàn)負(fù)載均衡的方法的流程圖。如圖I所示,本發(fā)明實(shí)施例中的在多個(gè)服務(wù)器之間實(shí)現(xiàn)負(fù)載均衡的方法包括如下所述步驟步驟101,系統(tǒng)中的每個(gè)服務(wù)器均獲知系統(tǒng)中其它服務(wù)器的地址信息。在本發(fā)明的信息系統(tǒng)中,設(shè)置有多個(gè)功能相同或相似的服務(wù)器,而且由于各個(gè)服務(wù)器所在的區(qū)域不同,用戶訪問量也有可能不同,所以各個(gè)服務(wù)器之間的負(fù)載可能會存在較大的差異,因而需要在各個(gè)服務(wù)器之間進(jìn)行相應(yīng)的負(fù)載均衡。因此,為了在在各個(gè)服務(wù)器之間進(jìn)行負(fù)載均衡,本步驟中,系統(tǒng)中的每個(gè)服務(wù)器都將獲知系統(tǒng)中其它服務(wù)器的地址信息,以便于在后續(xù)的步驟中與其它服務(wù)器共享負(fù)載監(jiān)控情況,并在必要時(shí)轉(zhuǎn)移工作負(fù)載。較佳的,在本發(fā)明的具體實(shí)施例中,所述步驟101可以通過如下所述的方式實(shí)現(xiàn)步驟a,預(yù)先設(shè)置一個(gè)系統(tǒng)共享的用于存儲系統(tǒng)中所有服務(wù)器的地址信息的配置文件或數(shù)據(jù)庫。在本發(fā)明的較佳實(shí)施例中,所述配置文件或數(shù)據(jù)庫可以存儲在系統(tǒng)中的任意一個(gè)服務(wù)器中;或者,所述配置文件或數(shù)據(jù)庫可以存儲在系統(tǒng)中的獨(dú)立存儲設(shè)備中。步驟b,各個(gè)服務(wù)器通過訪問所述配置文件或數(shù)據(jù)庫獲知系統(tǒng)中其它服務(wù)器的地
址信息。更進(jìn)一步的,在本發(fā)明的較佳實(shí)施例中,當(dāng)系統(tǒng)中新增或刪減服務(wù)器時(shí),以排他方式在配置文件或數(shù)據(jù)庫中新增或刪除相應(yīng)的地址信息。
較佳的,在本發(fā)明的具體實(shí)施例中,所述步驟101也可以通過如下所述的方式實(shí)現(xiàn)在系統(tǒng)中的每個(gè)服務(wù)器中都存儲系統(tǒng)中其它服務(wù)器的地址信息。在本發(fā)明的具體實(shí)施例中,系統(tǒng)可將系統(tǒng)中所有服務(wù)器的地址信息發(fā)送給系統(tǒng)中的各個(gè)服務(wù)器,因此,系統(tǒng)中的每個(gè)服務(wù)器中都可存儲系統(tǒng)中其它服務(wù)器的地址信息。 例如,當(dāng)系統(tǒng)中具有三個(gè)服務(wù)器A、B和C時(shí),可在服務(wù)器A中存儲服務(wù)器B和C的地址信息;在服務(wù)器B中存儲服務(wù)器A和C的地址信息;在服務(wù)器C中存儲服務(wù)器A和C的地址信息。另外,在本發(fā)明的較佳實(shí)施例中,可以在每個(gè)服務(wù)器中都預(yù)先設(shè)置一個(gè)負(fù)載情況列表,用于存儲系統(tǒng)中其它服務(wù)器的地址信息。較佳的,當(dāng)系統(tǒng)中新增或刪減服務(wù)器時(shí),系統(tǒng)通知各個(gè)服務(wù)器在各自存儲的負(fù)載 情況列表中新增或刪除相應(yīng)的地址信息。更進(jìn)一步的,在本發(fā)明的較佳實(shí)施例中,當(dāng)系統(tǒng)中新增服務(wù)器時(shí),系統(tǒng)可以將系統(tǒng)中已有服務(wù)器的地址信息發(fā)送給所述新增的服務(wù)器,從而使得所述新增的服務(wù)器可以存儲系統(tǒng)中其它服務(wù)器的地址信息。步驟102,各個(gè)服務(wù)器監(jiān)控自身的負(fù)載情況,并向系統(tǒng)中的其它服務(wù)器廣播自身的負(fù)載情況。在本步驟中,各個(gè)服務(wù)器需要實(shí)時(shí)監(jiān)控自身的負(fù)載情況,并向系統(tǒng)中的其它服務(wù)器廣播自身的負(fù)載情況,以使得各個(gè)服務(wù)器均可獲知其它服務(wù)器的負(fù)載情況,從而便于各個(gè)服務(wù)器在后續(xù)的步驟中選擇空閑的服務(wù)器轉(zhuǎn)移工作負(fù)載。較佳的,在本發(fā)明的具體實(shí)施例中,所述負(fù)載情況可以包括內(nèi)存占用情況、處理器占用情況和網(wǎng)絡(luò)連接數(shù)等資源占用情況。所述資源占用情況的數(shù)值可以包括絕對值和比例值。較佳的,在本發(fā)明的具體實(shí)施例中,所述向系統(tǒng)中的其它服務(wù)器廣播自身的負(fù)載情況可以是根據(jù)自身的負(fù)載情況和預(yù)先設(shè)置的負(fù)載等級,按照預(yù)設(shè)的周期向系統(tǒng)中的其它服務(wù)器廣播自身的負(fù)載等級。其中,所述負(fù)載等級可以根據(jù)實(shí)際應(yīng)用環(huán)境而預(yù)先設(shè)置。例如,所述負(fù)載等級可以包括1級空閑、2級空閑、3級空閑、I級繁忙、2級繁忙和3級繁忙等,其中,上述各個(gè)負(fù)載等級的負(fù)載程度按照由輕到重的順利排列,I級空閑的負(fù)載最輕,而3級繁忙的負(fù)載最重。當(dāng)然,在本發(fā)明的技術(shù)方案中,所述負(fù)載等級也可以是與上述設(shè)置類似的其它設(shè)置方式,在此
不再一一列舉。由于已經(jīng)預(yù)先設(shè)置了負(fù)載等級,因此各個(gè)服務(wù)器可以根據(jù)自身的實(shí)時(shí)負(fù)載情況確定自身當(dāng)前的負(fù)載等級,然后按照預(yù)設(shè)的周期向系統(tǒng)中的其它服務(wù)器廣播自身的負(fù)載等級。較佳的,在本發(fā)明的具體實(shí)施例中,各個(gè)服務(wù)器在接收到系統(tǒng)中其它服務(wù)器廣播的負(fù)載情況后,可將其它服務(wù)器的負(fù)載情況記錄在負(fù)載情況列表中,以便于在后續(xù)的步驟中選擇空閑的服務(wù)器轉(zhuǎn)移工作負(fù)載。步驟103,當(dāng)當(dāng)前服務(wù)器接收到新工作任務(wù)且當(dāng)前服務(wù)器滿足預(yù)設(shè)的負(fù)載轉(zhuǎn)移條件時(shí),根據(jù)系統(tǒng)中其它服務(wù)器的負(fù)載情況選擇一個(gè)服務(wù)器。在本發(fā)明的技術(shù)方案中,系統(tǒng)中的各個(gè)服務(wù)器都可能會接收到新工作任務(wù)。如果其中的某一個(gè)服務(wù)器(即當(dāng)前服務(wù)器)在接收到新工作任務(wù)時(shí),發(fā)現(xiàn)自身的負(fù)載已經(jīng)很大,已經(jīng)滿足了預(yù)設(shè)的負(fù)載轉(zhuǎn)移條件,則該當(dāng)前服務(wù)器可根據(jù)系統(tǒng)中其它服務(wù)器的負(fù)載情況選擇一個(gè)服務(wù)器。較佳的,在本發(fā)明的具體實(shí)施例中,所述預(yù)設(shè)的負(fù)載轉(zhuǎn)移條件可以是當(dāng)前服務(wù)器的負(fù)載情況大于或等于預(yù)設(shè)的負(fù)載閾值。較佳的,在本發(fā)明的具體實(shí)施例中,如果預(yù)先設(shè)置了多個(gè)負(fù)載等級,則所述負(fù)載閾值可以是預(yù)先確定的一個(gè)負(fù)載等級。 例如,如果預(yù)先設(shè)置了 6個(gè)負(fù)載等級1級空閑、2級空閑、3級空閑、I級繁忙、2級繁忙、3級繁忙,則所述負(fù)載閾值可以預(yù)先確定為是2級繁忙。因此,如果當(dāng)前服務(wù)器的負(fù)載情況為2級繁忙或3級繁忙,則該當(dāng)前服務(wù)器已經(jīng)滿足預(yù)設(shè)的負(fù)載轉(zhuǎn)移條件;而如果當(dāng)前服務(wù)器的負(fù)載情況為I級繁忙,則該當(dāng)前服務(wù)器不滿足預(yù)設(shè)的負(fù)載轉(zhuǎn)移條件。另外,在本發(fā)明的技術(shù)方案中,由于各個(gè)服務(wù)器可將其它服務(wù)器的負(fù)載情況記錄在負(fù)載情況列表中,因此,較佳的,在本發(fā)明的具體實(shí)施例中,所述根據(jù)系統(tǒng)中其它服務(wù)器的負(fù)載情況選擇一個(gè)服務(wù)器可以是從自身存儲的負(fù)載情況列表中選擇一個(gè)負(fù)載情況小于預(yù)設(shè)的負(fù)載閾值且負(fù)載最輕的服務(wù)器。較佳的,在本發(fā)明的具體實(shí)施例中,所述根據(jù)系統(tǒng)中其它服務(wù)器的負(fù)載情況選擇一個(gè)服務(wù)器也可以是為自身存儲的負(fù)載情況列表中的各個(gè)服務(wù)器分別設(shè)置加權(quán)值,并生成加權(quán)后的負(fù)載情況;從自身存儲的負(fù)載情況列表中選擇一個(gè)加權(quán)后的負(fù)載情況小于預(yù)設(shè)的負(fù)載閾值且負(fù)載最輕的服務(wù)器。步驟104,當(dāng)前服務(wù)器與被選擇的服務(wù)器建立連接,將所述新工作任務(wù)轉(zhuǎn)移至被選擇的服務(wù)器。由于在步驟103中,當(dāng)前服務(wù)器已經(jīng)選擇了一個(gè)服務(wù)器,因此在本步驟中,該當(dāng)前服務(wù)器即可與該被選擇的服務(wù)器建立連接,然后將所述新工作任務(wù)轉(zhuǎn)移至被選擇的服務(wù)器。由于在本發(fā)明的信息系統(tǒng)中,各個(gè)服務(wù)器所能提供的具體業(yè)務(wù)沒有明顯區(qū)別,因此可以在服務(wù)器之間轉(zhuǎn)移待處理的工作任務(wù),將負(fù)載較重的服務(wù)器上的業(yè)務(wù)轉(zhuǎn)移到負(fù)載較輕的服務(wù)器上進(jìn)行處理。由于在本發(fā)明的較佳實(shí)施例中,當(dāng)前服務(wù)器可以為自身存儲的負(fù)載情況列表中的各個(gè)服務(wù)器分別設(shè)置加權(quán)值,因此較佳的,在本發(fā)明的具體實(shí)施例中,如果當(dāng)前服務(wù)器與被選擇的服務(wù)器建立連接失敗,則當(dāng)前服務(wù)器在自身存儲的負(fù)載情況列表中下調(diào)該被選擇的服務(wù)器的加權(quán)值,返回執(zhí)行步驟103。步驟105,被選擇的服務(wù)器對所述新工作任務(wù)進(jìn)行處理,并將處理結(jié)果發(fā)送給當(dāng)前服務(wù)器。在本步驟中,被選擇的服務(wù)器將對從當(dāng)前服務(wù)器轉(zhuǎn)移的所述新工作任務(wù)進(jìn)行處理,并將處理結(jié)果發(fā)送給當(dāng)前服務(wù)器。此時(shí),所述新工作任務(wù)的實(shí)際處理工作將由被選擇的服務(wù)器完成,并將處理結(jié)果發(fā)送給當(dāng)前服務(wù)器;當(dāng)前服務(wù)器將僅作為中間代理,將所述處理結(jié)果返回給用戶。通過上述的步驟101 105,即可使得當(dāng)前服務(wù)器在其負(fù)載較重時(shí),可將新接收的新工作任務(wù)轉(zhuǎn)移到負(fù)載較輕的其它服務(wù)器上進(jìn)行處理,從而可在不設(shè)置特定的負(fù)載均衡平臺的條件下,實(shí)現(xiàn)服務(wù)器之間的負(fù)載均衡,大大提高系統(tǒng)的資源利用率。綜上可知,在本發(fā)明中所提供的在多個(gè)服務(wù)器之間實(shí)現(xiàn)負(fù)載均衡的方法中,由于系統(tǒng)中的每個(gè)服務(wù)器均獲知系統(tǒng)中其它服務(wù)器的地址信息并可向系統(tǒng)中的其它服務(wù)器廣播自身的負(fù)載情況,因此如果當(dāng)前服務(wù)器負(fù)載較重且接收到新工作任務(wù)時(shí),可從系統(tǒng)中的其它服務(wù)器中選擇一個(gè)負(fù)載最輕的服務(wù)器,并將新工作任務(wù)轉(zhuǎn)移至被選擇的服務(wù)器,由被選擇的服務(wù)器對所述新工作任務(wù)進(jìn)行處理,并將處理結(jié)果發(fā)送給當(dāng)前服務(wù)器,從而可在不設(shè)置特定的負(fù)載均衡平臺的條件下,實(shí)現(xiàn)服務(wù)器之間的負(fù)載均衡,大大提高系統(tǒng)的資源利用率。以上所述僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。凡在 本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換以及改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種在多個(gè)服務(wù)器之間實(shí)現(xiàn)負(fù)載均衡的方法,其特征在于,該方法包括 系統(tǒng)中的每個(gè)服務(wù)器均獲知系統(tǒng)中其它服務(wù)器的地址信息; 各個(gè)服務(wù)器監(jiān)控自身的負(fù)載情況,并向系統(tǒng)中的其它服務(wù)器廣播自身的負(fù)載情況;當(dāng)當(dāng)前服務(wù)器接收到新工作任務(wù)且當(dāng)前服務(wù)器滿足預(yù)設(shè)的負(fù)載轉(zhuǎn)移條件時(shí),根據(jù)系統(tǒng)中其它服務(wù)器的負(fù)載情況選擇一個(gè)服務(wù)器; 當(dāng)前服務(wù)器與被選擇的服務(wù)器建立連接,將所述新工作任務(wù)轉(zhuǎn)移至被選擇的服務(wù)器; 被選擇的服務(wù)器對所述新工作任務(wù)進(jìn)行處理,并將處理結(jié)果發(fā)送給當(dāng)前服務(wù)器。
2.如權(quán)利要求I所述的方法,其特征在于,所述系統(tǒng)中的每個(gè)服務(wù)器均獲知系統(tǒng)中其它服務(wù)器的地址信息包括 預(yù)先設(shè)置一個(gè)系統(tǒng)共享的用于存儲系統(tǒng)中所有服務(wù)器的地址信息的配置文件或數(shù)據(jù)庫; 各個(gè)服務(wù)器通過訪問所述配置文件或數(shù)據(jù)庫獲知系統(tǒng)中其它服務(wù)器的地址信息。
3.如權(quán)利要求2所述的方法,其特征在于,該方法還進(jìn)一步包括 當(dāng)系統(tǒng)中新增或刪減服務(wù)器時(shí),以排他方式在配置文件或數(shù)據(jù)庫中新增或刪除相應(yīng)的地址信息。
4.如權(quán)利要求I所述的方法,其特征在于,所述系統(tǒng)中的每個(gè)服務(wù)器均獲知系統(tǒng)中其它服務(wù)器的地址信息包括 在系統(tǒng)中的每個(gè)服務(wù)器中都存儲系統(tǒng)中其它服務(wù)器的地址信息。
5.如權(quán)利要求4所述的方法,其特征在于,該方法進(jìn)一步包括 在每個(gè)服務(wù)器中都預(yù)先設(shè)置一個(gè)用于存儲系統(tǒng)中其它服務(wù)器的地址信息的負(fù)載情況列表。
6.如權(quán)利要求5所述的方法,其特征在于,該方法進(jìn)一步包括 當(dāng)系統(tǒng)中新增或刪減服務(wù)器時(shí),系統(tǒng)通知各個(gè)服務(wù)器在各自存儲的負(fù)載情況列表中新增或刪除相應(yīng)的地址信息。
7.如權(quán)利要求6所述的方法,其特征在于,該方法進(jìn)一步包括 當(dāng)系統(tǒng)中新增服務(wù)器時(shí),系統(tǒng)將系統(tǒng)中已有服務(wù)器的地址信息發(fā)送給所述新增的服務(wù)器。
8.如權(quán)利要求I所述的方法,其特征在于,所述負(fù)載情況包括 內(nèi)存占用情況、處理器占用情況和網(wǎng)絡(luò)連接數(shù)。
9.如權(quán)利要求I所述的方法,其特征在于,所述向系統(tǒng)中的其它服務(wù)器廣播自身的負(fù)載情況包括 根據(jù)自身的負(fù)載情況和預(yù)先設(shè)置的負(fù)載等級,按照預(yù)設(shè)的周期向系統(tǒng)中的其它服務(wù)器廣播自身的負(fù)載等級。
10.如權(quán)利要求9所述的方法,其特征在于,所述負(fù)載等級包括 I級空閑、2級空閑、3級空閑、I級繁忙、2級繁忙和3級繁忙。
11.如權(quán)利要求I或10所述的方法,其特征在于,該方法還進(jìn)一步包括 各個(gè)服務(wù)器將其它服務(wù)器的負(fù)載情況記錄在負(fù)載情況列表中。
12.如權(quán)利要求11所述的方法,其特征在于,所述預(yù)設(shè)的負(fù)載轉(zhuǎn)移條件為 當(dāng)前服務(wù)器的負(fù)載情況大于或等于預(yù)設(shè)的負(fù)載閾值。
13.如權(quán)利要求12所述的方法,其特征在于 所述負(fù)載閾值為預(yù)先確定的一個(gè)負(fù)載等級。
14.如權(quán)利要求13所述的方法,其特征在于,所述根據(jù)系統(tǒng)中其它服務(wù)器的負(fù)載情況選擇一個(gè)服務(wù)器包括 從自身存儲的負(fù)載情況列表中選擇一個(gè)負(fù)載情況小于預(yù)設(shè)的負(fù)載閾值且負(fù)載最輕的服務(wù)器。
15.如權(quán)利要求13所述的方法,其特征在于,所述根據(jù)系統(tǒng)中其它服務(wù)器的負(fù)載情況選擇一個(gè)服務(wù)器包括 為自身存儲的負(fù)載情況列表中的各個(gè)服務(wù)器分別設(shè)置加權(quán)值,并生成加權(quán)后的負(fù)載情 況; 從自身存儲的負(fù)載情況列表中選擇一個(gè)加權(quán)后的負(fù)載情況小于預(yù)設(shè)的負(fù)載閾值且負(fù)載最輕的服務(wù)器。
16.如權(quán)利要求15所述的方法,其特征在于,該方法還進(jìn)一步包括 如果當(dāng)前服務(wù)器與被選擇的服務(wù)器建立連接失敗,則當(dāng)前服務(wù)器在自身存儲的負(fù)載情況列表中下調(diào)該被選擇的服務(wù)器的加權(quán)值,返回執(zhí)行根據(jù)系統(tǒng)中其它服務(wù)器的負(fù)載情況選擇一個(gè)服務(wù)器的步驟。
全文摘要
本發(fā)明公開了一種在多個(gè)服務(wù)器之間實(shí)現(xiàn)負(fù)載均衡的方法。該方法包括系統(tǒng)中的每個(gè)服務(wù)器均獲知系統(tǒng)中其它服務(wù)器的地址信息;各個(gè)服務(wù)器監(jiān)控自身的負(fù)載情況,并向系統(tǒng)中的其它服務(wù)器廣播自身的負(fù)載情況;當(dāng)當(dāng)前服務(wù)器接收到新工作任務(wù)且當(dāng)前服務(wù)器滿足預(yù)設(shè)的負(fù)載轉(zhuǎn)移條件時(shí),根據(jù)系統(tǒng)中其它服務(wù)器的負(fù)載情況選擇一個(gè)服務(wù)器;當(dāng)前服務(wù)器與被選擇的服務(wù)器建立連接,將所述新工作任務(wù)轉(zhuǎn)移至被選擇的服務(wù)器;被選擇的服務(wù)器對所述新工作任務(wù)進(jìn)行處理,并將處理結(jié)果發(fā)送給當(dāng)前服務(wù)器。通過使用本發(fā)明中的在多個(gè)服務(wù)器之間實(shí)現(xiàn)負(fù)載均衡的方法,可以在不設(shè)置特定的負(fù)載均衡平臺的條件下,實(shí)現(xiàn)服務(wù)器之間的負(fù)載均衡,大大提高系統(tǒng)的資源利用率。
文檔編號H04L29/08GK102970379SQ20121055638
公開日2013年3月13日 申請日期2012年12月19日 優(yōu)先權(quán)日2012年12月19日
發(fā)明者李蘭輝, 金京濤, 林海, 賈曉霞, 鄭揚(yáng)飛, 王志堅(jiān), 胡春波, 吳衛(wèi)榮, 郭彥義, 劉毅 申請人:中國電子科技集團(tuán)公司第十五研究所