專利名稱:動(dòng)態(tài)反饋負(fù)載分發(fā)方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及ii/f言領(lǐng)i或,更具體;也,涉及一種動(dòng)態(tài)反々貴負(fù)載分發(fā)
方法和裝置。
背景技術(shù):
多目的端負(fù)載均衡是網(wǎng)絡(luò)系統(tǒng)中的常見技術(shù),該技術(shù)提供了一 種擴(kuò)展服務(wù)器帶寬和增加服務(wù)器吞吐量的廉價(jià)有效方法,既可加強(qiáng) 網(wǎng)絡(luò)數(shù)據(jù)處理能力,又可提高網(wǎng)絡(luò)的靈活性及可用性。其主要作用
有兩點(diǎn)保證高可靠性, 一旦負(fù)載均衡的某目的端出現(xiàn)故障,其它 目的端可以-接替其工作;以及節(jié)約成本,不必額外使用熱備^H支術(shù) 保證可靠性而增加i殳備成本。
常見的負(fù)載均《軒才支術(shù)^口下孝侖i句(Simple Round Robin )方式一口 權(quán)重輪詢(Weighted Round Robin )方式。
一、4合詢方式
各目的端輪流處理請(qǐng)求消息。該方式對(duì)應(yīng)用服務(wù)器的硬件環(huán)境、 操作系統(tǒng)乃至應(yīng)用軟件沒有要求,各目的端相對(duì)獨(dú)立;無需為實(shí)現(xiàn) 負(fù)載均衡而增加軟硬件投資,是最簡(jiǎn)單、最傳統(tǒng)的多目的端負(fù)載均 衡方式,但該方式在功能和性能上存在如下問題可靠性無法保證, 當(dāng)某目的端宕機(jī),分發(fā)進(jìn)程無法發(fā)現(xiàn),例如在3臺(tái)目的端系統(tǒng)中, 如1臺(tái)宕機(jī),將有1/3消息無法響應(yīng),嚴(yán)重影響系統(tǒng)服務(wù)質(zhì)量;以
及負(fù)荷分擔(dān)不一定合理,各目的端性能可有差異,在性能不同的目 的端間平均分配請(qǐng)求,性能差的目的端可能成為系統(tǒng)瓶頸,而性能 好的目的端資源沒有被充分利用,造成一殳資浪費(fèi)。
二、纟又重4企詢方式
權(quán)重輪詢是輪詢分發(fā)的改進(jìn)版本,即為各個(gè)目的端配置不同權(quán) 重,請(qǐng)求消息按權(quán)重比例分發(fā)到各個(gè)目的端。
雖然,上述方式規(guī)避了輪詢方式中因設(shè)備處理能力差異造成的 "不公平"現(xiàn)象,但目的端的突發(fā)進(jìn)程可能在某時(shí)間段內(nèi)大量占用該 設(shè)備的系統(tǒng)資源,權(quán)重專侖詢方式無法4全測(cè)這種異常,從而影響處理性能。
發(fā)明內(nèi)容
為了解決現(xiàn)有技術(shù)中的問題,本發(fā)明提出了 一種動(dòng)態(tài)反饋負(fù)載 分發(fā)方法和裝置,用于在多個(gè)目的端與源端之間動(dòng)態(tài)分發(fā)消息。
根據(jù)本發(fā)明的動(dòng)態(tài)反饋負(fù)載分發(fā)方法包括以下步驟步驟一 , 通過關(guān)鍵參數(shù)采集模塊收集多個(gè)目的端中的每個(gè)目的端的關(guān)鍵參 數(shù),并將關(guān)鍵參數(shù)發(fā)送至決策模塊;步驟二,決策模塊對(duì)關(guān)鍵參數(shù) 進(jìn)行分析,以確定每個(gè)目的端的處理能力;以及步驟三,當(dāng)接收到 來自源端的信息時(shí),消息處理模塊根據(jù)保存在消息處理模塊中的關(guān) 于每個(gè)目的端的處理能力來分發(fā)消息。
其中,關(guān)鍵參數(shù)是由CPU占用率、內(nèi)存占用率、和消息隊(duì)列積 壓長(zhǎng)度構(gòu)成的組合,或由消息隊(duì)列積壓長(zhǎng)度、消息反饋時(shí)延、和超 時(shí)消息個(gè)tt構(gòu)成的組合。 當(dāng)目的端是可編程系統(tǒng)時(shí),關(guān)鍵參數(shù)包括CPU占用率、內(nèi)存 占用率、和消息隊(duì)列積壓長(zhǎng)度,它們是目的端的本地?cái)?shù)據(jù),本地?cái)?shù) 據(jù)是通過以下方式提供給關(guān)鍵參數(shù)采集模塊的反饋機(jī)制、通信、 或共享數(shù)據(jù)庫(kù)。
當(dāng)目的端是第三方系統(tǒng)時(shí),關(guān)鍵參數(shù)包括消息隊(duì)列積壓長(zhǎng)度、 消息反々貴時(shí)延、和超時(shí)消息個(gè)凄史。
在步驟二中,執(zhí)行以下處理決策模塊得到每個(gè)目的端的一個(gè) 負(fù)載指數(shù);以及決策模塊根據(jù)負(fù)載指數(shù)判斷目的端的處理能力。
其中,負(fù)載指數(shù)與消息隊(duì)列積壓長(zhǎng)度、消息反饋時(shí)延、和超時(shí) 消息個(gè)數(shù)相關(guān)聯(lián)。負(fù)載指數(shù)小,則表示消息隊(duì)列積壓長(zhǎng)度、消息反 饋時(shí)延、或超時(shí)消息個(gè)數(shù)的延遲小,目的端的處理能力好。與消息 隊(duì)列積壓長(zhǎng)度相關(guān)耳關(guān)的負(fù)載指數(shù)所表征的延遲能力最小,與超時(shí)消
息個(gè)數(shù)相關(guān)聯(lián)的負(fù)載指數(shù)所表征的延遲能力最大,以及與消息反饋 時(shí)延相關(guān)聯(lián)的負(fù)載指數(shù)所表征的延遲能力居中。
另外,在步驟二中還執(zhí)行以下處理通過一個(gè)過載檢測(cè)才莫塊確 定目的端是否過載;當(dāng)目的端過載時(shí),過載檢測(cè)模塊向決策模塊發(fā) 送一個(gè)過載處理命令,/人而減少目的端的負(fù)載。
當(dāng)每個(gè)目的端都過載時(shí),則決策模塊進(jìn)入降級(jí)模式,限制源端 發(fā)送的消息的數(shù)量。
而當(dāng)過載一僉測(cè)才莫塊判斷每個(gè)目的端過載成斷《連時(shí),目的端不4妄 收消息。
在步驟三中執(zhí)行以下處理消息處理模塊接收到來自源端的消 息;消息處理模塊向決策模塊發(fā)出取決策指令;以及消息處理模塊 根據(jù)決策模塊返回的關(guān)于每個(gè)目的端的處理能力來分發(fā)消息。
本發(fā)明還提供了一種動(dòng)態(tài)反饋負(fù)載分發(fā)裝置,用于在多個(gè)目的
端與源端之間動(dòng)態(tài)分發(fā)消息,該裝置包括關(guān)鍵參數(shù)采集模塊,用 于收集多個(gè)目的端中的每個(gè)目的端的關(guān)鍵參數(shù),并將關(guān)鍵參數(shù)發(fā)送 至決策模塊;決策模塊,用于對(duì)關(guān)鍵參數(shù)進(jìn)行分析,以確定每個(gè)目 的端的處理能力,并將處理能力發(fā)送給消息處理模塊;以及消息處 理模塊,用于接收來自源端的信息,并根據(jù)每個(gè)目的端的處理能力 來分發(fā)消息。
另外,該裝置還包括過載檢測(cè)模塊,用于分析關(guān)鍵參數(shù),并 根據(jù)關(guān)鍵參數(shù)配置門限來確定目的端是否過載。
其中,過載檢測(cè)模塊還用于當(dāng)目的端過載時(shí),啟動(dòng)過載機(jī)制, 降低目的端的消息的數(shù)量,并且當(dāng)每個(gè)目的端都過載時(shí),啟動(dòng)降級(jí)機(jī)制。
關(guān)鍵參數(shù)是由CPU占用率、內(nèi)存占用率、和消息隊(duì)列積壓長(zhǎng)度 構(gòu)成的組合,或由消息隊(duì)列積壓長(zhǎng)度、消息反饋時(shí)延、和超時(shí)消息 個(gè)H構(gòu)成的組合。
因此,采用本發(fā)明的方法和裝置,可以收集各目的端相關(guān)信息, 通過分析比較,實(shí)時(shí)選3奪當(dāng)前處理能力較強(qiáng)的目的端作為分發(fā)目標(biāo), 較之4侖詢、才艮據(jù)IP或用戶號(hào)碼配置選擇^各由等靜態(tài)分發(fā)方式更為靈 活、主動(dòng),適應(yīng)性更強(qiáng)。
本發(fā)明的其它特征和優(yōu)點(diǎn)將在隨后的說明書中闡述,并且,部 分地從說明書中變得顯而易見,或者通過實(shí)施本發(fā)明而了解。本發(fā) 明的目的和其他優(yōu)點(diǎn)可通過在所寫的說明書、權(quán)利要求書、以及附 圖中所特別指出的結(jié)構(gòu)來實(shí)現(xiàn)和獲得。
附圖用來^是供對(duì)本發(fā)明的進(jìn)一 步理解,并且構(gòu)成i兌明書的 一部 分,與本發(fā)明的實(shí)施例一起用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的
限制。在附圖中
圖1是根據(jù)本發(fā)明的動(dòng)態(tài)反饋負(fù)載分發(fā)方法的流程圖2是根據(jù)本發(fā)明的動(dòng)態(tài)反饋負(fù)載分發(fā)裝置的框圖3是根據(jù)本發(fā)明實(shí)施例的動(dòng)態(tài)反饋負(fù)載分發(fā)裝置的框圖;以
及
圖4是在圖3中所示裝置中執(zhí)行的具體消息流程圖。
具體實(shí)施例方式
以下結(jié)合附圖對(duì)本發(fā)明的優(yōu)選實(shí)施例進(jìn)行說明,應(yīng)當(dāng)理解,此 處所描述的優(yōu)選實(shí)施例僅用于說明和解釋本發(fā)明,并不用于限定本發(fā)明。
圖1是根據(jù)本發(fā)明的動(dòng)態(tài)反饋負(fù)載分發(fā)方法的流程圖。如圖1 所示,包纟舌以下步頭聚
步驟S102,通過關(guān)鍵參數(shù)采集模塊收集多個(gè)目的端中的每個(gè)目 的端的關(guān)鍵參數(shù),并將關(guān)鍵參數(shù)發(fā)送至決策模塊;
步驟S104,決策模塊對(duì)關(guān)鍵參數(shù)進(jìn)行分析,以確定每個(gè)目的端 的處理能力;以及
步驟S106,當(dāng)接收到來自源端的信息時(shí),消息處理模塊根據(jù)保 存在消息處理模塊中的關(guān)于每個(gè)目的端的處理能力來分發(fā)消息。
其中,關(guān)4建參凄丈是由CPU占用率、內(nèi)存占用率、和消息隊(duì)列積 壓長(zhǎng)度構(gòu)成的組合,或由消息隊(duì)列積壓長(zhǎng)度、消息反饋時(shí)延、和超 時(shí)消息個(gè)數(shù)構(gòu)成的組合。
當(dāng)目的端是可編程系統(tǒng)時(shí),關(guān)鍵參數(shù)包括CPU占用率、內(nèi)存 占用率、和消息隊(duì)列積壓長(zhǎng)度,它們是目的端的本地?cái)?shù)據(jù),本地?cái)?shù) 據(jù)是通過以下方式提供給關(guān)鍵參數(shù)采集模塊的反饋機(jī)制、通信、 或共享liU居庫(kù)。
當(dāng)目的端是第三方系統(tǒng)時(shí),關(guān)鍵參數(shù)包括消息隊(duì)列積壓長(zhǎng)度、 消息反4t時(shí)延、和超時(shí)消息個(gè)H。
在步驟S104中,執(zhí)行以下處理決策模塊得到每個(gè)目的端的 一個(gè)負(fù)載指數(shù);以及決策模塊根據(jù)負(fù)載指數(shù)判斷目的端的處理能力。
其中,負(fù)載指數(shù)與消息隊(duì)列積壓長(zhǎng)度、消息反饋時(shí)延、和超時(shí) 消息個(gè)數(shù)相關(guān)聯(lián)。負(fù)載指數(shù)小,則表示消息隊(duì)列積壓長(zhǎng)度、消息反 饋時(shí)延、或超時(shí)消息個(gè)數(shù)的延遲小,目的端的處理能力好。與消息 隊(duì)列積壓長(zhǎng)度相關(guān)聯(lián)的負(fù)載指數(shù)所表征的延遲能力最小,與超時(shí)消 息個(gè)數(shù)相關(guān)聯(lián)的負(fù)載指數(shù)所表征的延遲能力最大,以及與消息反饋 時(shí)延相關(guān)聯(lián)的負(fù)載指數(shù)所表征的延遲能力居中。
另外,在步驟S104中還執(zhí)行以下處理通過一個(gè)過載檢測(cè)模 塊確定目的端是否過載;當(dāng)目的端過載時(shí),過載才企測(cè)沖莫塊向決策才莫 塊發(fā)送一個(gè)過載處理命令,從而減少目的端的負(fù)載。
當(dāng)每個(gè)目的端都過載時(shí),則決策才莫塊進(jìn)入降級(jí)才莫式,限制源端 發(fā)送的消息的數(shù)量。
而當(dāng)過載檢測(cè)模塊判斷每個(gè)目的端過載成斷鏈時(shí),目的端不接 收消息。
在步驟S106中^丸行以下處理消息處理才莫塊接收到來自源端 的消息;消息處理模塊向決策模塊發(fā)出取決策指令;以及消息處理 模塊根據(jù)決策模塊返回的關(guān)于每個(gè)目的端的處理能力來分發(fā)消息。
圖2是根據(jù)本發(fā)明的動(dòng)態(tài)反饋負(fù)載分發(fā)裝置200的框圖。如圖 2所示,該裝置包括關(guān)鍵參數(shù)釆集模塊202,用于收集多個(gè)目的端 中的每個(gè)目的端的關(guān)鍵參數(shù),并將關(guān)鍵參數(shù)發(fā)送至決策模塊204; 決策模塊204 ,用于對(duì)關(guān)鍵參數(shù)進(jìn)行分析,以確定每個(gè)目的端的處 理能力,并將處理能力發(fā)送給消息處理模塊206;以及消息處理模 塊206,用于接收來自源端的信息,并根據(jù)每個(gè)目的端的處理能力 來分發(fā)消息。
另外,該裝置還包括過載檢測(cè)模塊,用于分析關(guān)鍵參數(shù),并 根據(jù)關(guān)鍵參數(shù)配置門限來確定目的端是否過載。
其中,過載沖企測(cè)才莫塊還用于當(dāng)目的端過載時(shí),啟動(dòng)過載才幾制, 降低目的端的消息的數(shù)量,并且當(dāng)每個(gè)目的端都過載時(shí),啟動(dòng)降級(jí) 機(jī)制。
關(guān)鍵參數(shù)是由CPU占用率、內(nèi)存占用率、和消息隊(duì)列積壓長(zhǎng)度 構(gòu)成的組合,或由消息隊(duì)列積壓長(zhǎng)度、消息反々貴時(shí)延、和超時(shí)消息 個(gè)數(shù)構(gòu)成的組合。
應(yīng)了解,本發(fā)明主要在于關(guān)鍵參數(shù)的選擇,而設(shè)備處理能力不 同,表征設(shè)備處理能力的參數(shù)很多。表征參數(shù)的選擇應(yīng)以普適、公 平為原則。
在本發(fā)明中,CPU占用率、內(nèi)存占用率、消息隊(duì)列積壓長(zhǎng)度為
目的端本地?cái)?shù)據(jù),而消息反饋時(shí)延、超時(shí)消息個(gè)數(shù)可內(nèi)部收集。目 的端本地?cái)?shù)據(jù)需要某種機(jī)制才能進(jìn)行反饋給該動(dòng)態(tài)反饋負(fù)載分發(fā)裝 置,或通信,或共享數(shù)據(jù)庫(kù)。 由此,產(chǎn)生兩點(diǎn)問題其一,若目的端為可編程系統(tǒng),則反々貴
機(jī)制不難實(shí)現(xiàn),若目的端為第三方系統(tǒng),則反饋機(jī)制無法實(shí)現(xiàn),實(shí)
際上本發(fā)明在應(yīng)用中恰恰屬于后者,由此目的端本地凄t據(jù)無法獲得; 其二,即便目的端參數(shù)得以反饋,若目的端本身非常繁忙,以至于 參凌t根本無法反^貴,該繁忙目的端承受的消息流量反而可能更大。
采用消息反饋時(shí)延、超時(shí)消息個(gè)數(shù)作為關(guān)鍵參數(shù)固然可以說明 問題,但略顯單薄,經(jīng)過論證,最終在發(fā)明中實(shí)現(xiàn)消息隊(duì)列來為目 的端負(fù)載提供參數(shù)。具體做法是緩存已發(fā)送但未收到響應(yīng)的消息, 以此消息個(gè)數(shù)作為第三組關(guān)鍵參數(shù)。綜上,將消息反饋時(shí)延、超時(shí) 消息個(gè)數(shù)及消息隊(duì)列積壓長(zhǎng)度作為關(guān)鍵參數(shù)。
接下來,對(duì)已獲取的關(guān)鍵參數(shù)的決策分析成為本發(fā)明的第二個(gè) 關(guān)鍵問題。分發(fā)策略決策的總體思路是對(duì)每個(gè)目的端維護(hù)一個(gè)負(fù)載 指數(shù),此指數(shù)越小表征此目的端狀況越好,從而加大該目的端消息 流量。負(fù)載指數(shù)受消息反饋時(shí)延、超時(shí)消息個(gè)數(shù)及消息隊(duì)列積壓長(zhǎng) 度影響,此參數(shù)反映消息積壓的嚴(yán)重程度有所不同。為體現(xiàn)各參數(shù) 的綜合效果,特為每種參數(shù)分配一定的權(quán)重。
當(dāng)某種事件(某條消息超時(shí)、消息隊(duì)列個(gè)數(shù)加一)發(fā)生時(shí),該 目的端的負(fù)載指凄t對(duì)應(yīng)增加相應(yīng)4又重,當(dāng)該事件消失時(shí)該目的端的 負(fù)載指凄t^f應(yīng)減少相應(yīng)4又重。
其中,消息隊(duì)列積壓長(zhǎng)度的延遲表征能力最小,權(quán)重設(shè)為1 , 即當(dāng) 一條請(qǐng)求消息發(fā)送到某目的端后,該目的端消息隊(duì)列加入該消 息,同時(shí)該目的端負(fù)載指數(shù)加1;當(dāng)收到該消息響應(yīng)后,該目的端 消息隊(duì)列刪除該消息,同時(shí)該目的端負(fù)載指凄t減1 。
超時(shí)消息個(gè)lt的延遲表征能力最大,4又重設(shè)定為10,即當(dāng)某條 消息響應(yīng)超時(shí)后,該目的端負(fù)栽指凄t加10。消息超時(shí)無法自動(dòng)恢復(fù),
采取定時(shí)清零策Wg-^隔30秒清除負(fù)載指數(shù)中的超時(shí)成分。與此
類似,消息反々貴平均時(shí)延也無法自動(dòng)恢復(fù),采耳又同樣策略清零。
消息反饋時(shí)延的延遲表征能力居中,權(quán)重設(shè)定為3。需要在系 統(tǒng)中配置時(shí)延門限(例如2秒),每隔很短時(shí)間(例如0.1秒)檢測(cè) 在此時(shí)間段內(nèi)平均時(shí)延是否超過門限,如果超過,則該目的端負(fù)載 指數(shù)加3,由于平均時(shí)延的不可恢復(fù)性,采取超時(shí)參數(shù)恢復(fù)的相同 才幾制,即定時(shí)清零。為靈活適應(yīng)不同系統(tǒng),各項(xiàng)沖又重^直應(yīng)可靈活配 置。
當(dāng)^r測(cè)到目的端負(fù)荷過大時(shí),即可認(rèn)為此目的端過載,相應(yīng)地 啟動(dòng)過載處理機(jī)制,減輕其負(fù)載。具體過程如下過載的標(biāo)準(zhǔn)需人 為判定,可采取配置方式。過載又可才艮據(jù)嚴(yán)重程度分為5級(jí)。例如 消息隊(duì)列積壓長(zhǎng)度達(dá)到10000認(rèn)為1級(jí)過載,達(dá)到20000認(rèn)為2級(jí) 過載,達(dá)到50000認(rèn)為5級(jí)過載;消息反饋平均時(shí)延達(dá)到2秒認(rèn)為 1級(jí)過載,3秒^人為2級(jí)過載,6秒認(rèn)為5級(jí)過載; 一段時(shí)間內(nèi)超時(shí) 消息個(gè)數(shù)達(dá)到100認(rèn)為1級(jí)過載,200認(rèn)為2級(jí)過載,500認(rèn)為5 級(jí)過載。三組參lt中耳又過載級(jí)別最大者作為該目的端的過載級(jí)別, 當(dāng)目的端過載后,將其負(fù)載指數(shù)增加一定值,使其在短時(shí)間內(nèi)由于 負(fù)載指數(shù)過高無法收到消息,從而達(dá)到減輕負(fù)荷的目的。若所有目 的端均呈過載狀態(tài),則進(jìn)入降級(jí)模式,限制上游設(shè)備發(fā)送消息數(shù)量, 直到降級(jí)恢復(fù)。
應(yīng)了解,過載最嚴(yán)重的狀態(tài)即為斷鏈,此時(shí)該目的端失去接收 消息的能力,直到鏈路恢復(fù)并穩(wěn)定。為此需要設(shè)置心跳檢測(cè)消息, 當(dāng)連續(xù)若干次收不到心跳檢測(cè)即認(rèn)為斷鏈,將該目的端置為"關(guān)閉" 狀態(tài),直到其鏈路恢復(fù)。
在實(shí)際運(yùn)行中發(fā)現(xiàn),在消息流量不大時(shí),各目的端的負(fù)載指數(shù) 往往為零,即使話務(wù)量較大,負(fù)載指數(shù)相等情況時(shí)有發(fā)生。由此需 引入輪詢分發(fā)機(jī)制,否則無法稱為負(fù)載均衡。經(jīng)過測(cè)試,此優(yōu)化引 入后,負(fù)載均衡效果更為明顯。
為防止負(fù)載指數(shù)越界,可定時(shí)將所有負(fù)載指數(shù)統(tǒng)一減少一定數(shù) 值,此優(yōu)化不影響負(fù)載能力表征。
在本發(fā)明中所謂的會(huì)話,指只能由同一目的端處理的一組相關(guān) 消息,例如,通信領(lǐng)域中一次呼叫中的計(jì)費(fèi)更新消息。在會(huì)話類消 息系統(tǒng)中,鑒于會(huì)話類消息的單一目的端特性,可將各目的端當(dāng)前 會(huì)話個(gè)數(shù)作為第四個(gè)負(fù)載指數(shù),權(quán)重設(shè)定為3,當(dāng)新增一條會(huì)話時(shí)
負(fù)載指數(shù)加3,結(jié)束會(huì)話時(shí)負(fù)載指數(shù)減3。
圖3是本發(fā)明實(shí)施例的動(dòng)態(tài)反饋負(fù)載分發(fā)裝置300的框圖。如 圖3所示,包括以下模塊消息處理模塊302,負(fù)責(zé)消息發(fā)送、接 收的具體實(shí)現(xiàn),從決策模塊獲得目的端地址,從過載檢測(cè)模塊獲取 過載處理命令,通過底層平臺(tái)或操作系統(tǒng)的相關(guān)機(jī)制完成消息發(fā)送、 接收;關(guān)鍵參數(shù)采集模塊304,采集并存儲(chǔ)表征目的端處理能力的 關(guān)鍵數(shù)據(jù),以備決策模塊分析,其中,關(guān)鍵參數(shù)的選擇非常重要; 決策模塊306,分析若干關(guān)鍵參數(shù),判斷目的端的當(dāng)前處理能力, 為本發(fā)明的核心模塊;以及過載檢測(cè)模塊308,定時(shí)分析關(guān)鍵參數(shù), 根據(jù)配置門限判斷某目的端是否過載,過載則啟動(dòng)過載機(jī)制,降低 該目的端的消息流量,若所有目的端均過載則啟動(dòng)降級(jí)機(jī)制。
在圖3中,源端作為消息來源,將消息通過上述各個(gè)模塊分發(fā) 給諸目的端。而目的端作為消息的目的地,需要符合請(qǐng)求-響應(yīng)機(jī)制, 在本發(fā)明中,同時(shí)存在多個(gè)目的端,以供分4旦負(fù)荷。
圖4是在圖3中所示的動(dòng)態(tài)反饋負(fù)載分發(fā)裝置中執(zhí)行的具體消 息流程圖。如圖4所示,消息分發(fā)流程如下
第一步,存在兩個(gè)目的端A、 B,源端開始發(fā)送消息,所有目 的端—又重均為0;
第二步,按照輪詢方式發(fā)送消息給目的端A,將此消息加入緩 存隊(duì)列,同時(shí)目的端A負(fù)載指數(shù)因緩存隊(duì)列增加而加1,因會(huì)話數(shù) 增加而加3,負(fù)載指數(shù)為4;
第三步,收到第二條消息,A負(fù)載指數(shù)較高,消息發(fā)送給目的 端B, B的負(fù)載指凄t為4;
第四步,收到第三條消息,由于負(fù)載指數(shù)均為4,按輪詢方式 消息發(fā)送給B, B的負(fù)載指數(shù)為8;
第五步, 一段時(shí)間后發(fā)送給A的消息出現(xiàn)超時(shí),A的負(fù)載指數(shù) 力口 10;
第六步,上個(gè)0.1秒內(nèi)B的平均處理時(shí)延超過門限2秒,B的 負(fù)載指數(shù)加3;
第七步,繼續(xù)根據(jù)各自負(fù)載指數(shù)分發(fā)消息,30秒后,將負(fù)載指 數(shù)中超時(shí)和時(shí)延成分清零;
第八步,話務(wù)量增大,目的端A消息隊(duì)列長(zhǎng)度超過過載門限 10000,達(dá)到11000,消息超時(shí)個(gè)數(shù)超過超時(shí)門限100,達(dá)到278, 平均時(shí)延超過門限2秒,達(dá)到3秒,取最大值,目的端A的過載級(jí) 別為3級(jí)過載,將其負(fù)載指數(shù)增加300x3, —^殳時(shí)間內(nèi),目的端A 無法收到消息,得到休息,負(fù)載參數(shù)回落;
第九步,因同樣原因目的端B與A同時(shí)過載,進(jìn)入降級(jí)才莫式, 根據(jù)降級(jí)級(jí)別屏蔽源端20 %消息,并通知源端;以及 第十步,目的端A斷食連,將目的端A狀態(tài)關(guān)閉,目的端B獨(dú) 自承擔(dān)負(fù)載。
因此,才艮據(jù)若干目的端實(shí)體的處理特性,動(dòng)態(tài)分析目的端處理 能力,從中選出最優(yōu)處理設(shè)備,既保證通信消息高效、準(zhǔn)確得到響 應(yīng),又保證目的端實(shí)體量力處理的請(qǐng)求消息。
綜上所述,采用本發(fā)明的方法和裝置,可以收集各目的端相關(guān) 信息,通過分析比較,實(shí)時(shí)選擇當(dāng)前處理能力較強(qiáng)的目的端作為分 發(fā)目標(biāo),較之輪詢、根據(jù)IP或用戶號(hào)碼配置選褲^各由等靜態(tài)分發(fā)方
式更為靈活、主動(dòng),適應(yīng)性更強(qiáng)。
本發(fā)明適用于目的端為請(qǐng)求-響應(yīng)模式的通信系統(tǒng),在若干目 的端并存的情況下,通過本發(fā)明主動(dòng)、動(dòng)態(tài)收集目的端的關(guān)鍵信息, 加以分析整理,計(jì)算出當(dāng)前處理能力較強(qiáng)的目的端,將消息發(fā)給該
端;同時(shí)分析出異常過載目的端,暫時(shí)減少其負(fù)荷。
以上〗又為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對(duì) 于本領(lǐng)域的4支術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本 發(fā)明的精神和原則之內(nèi),所作的任何修改、等同^,換、改進(jìn)等,均 應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種動(dòng)態(tài)反饋負(fù)載分發(fā)方法,用于在多個(gè)目的端與源端之間動(dòng)態(tài)分發(fā)消息,其特征在于,包括以下步驟步驟一,通過關(guān)鍵參數(shù)采集模塊收集所述多個(gè)目的端中的每個(gè)目的端的關(guān)鍵參數(shù),并將所述關(guān)鍵參數(shù)發(fā)送至決策模塊;步驟二,所述決策模塊對(duì)所述關(guān)鍵參數(shù)進(jìn)行分析,以確定所述每個(gè)目的端的處理能力;以及步驟三,當(dāng)接收到來自所述源端的所述信息時(shí),所述消息處理模塊根據(jù)保存在所述消息處理模塊中的關(guān)于所述每個(gè)目的端的處理能力來分發(fā)所述消息。
2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述關(guān)4建參H是由 CPU占用率、內(nèi)存占用率、和消息隊(duì)列積壓長(zhǎng)度構(gòu)成的組合, 或由消息隊(duì)列積壓長(zhǎng)度、消息反饋時(shí)延、和超時(shí)消息個(gè)數(shù)構(gòu)成 的組合。
3. 根據(jù)權(quán)利要求2所述的方法,其特征在于,當(dāng)所述目的端是可 編程系統(tǒng)時(shí),所述關(guān)鍵參數(shù)包括CPU占用率、內(nèi)存占用率、 和消息隊(duì)列積壓長(zhǎng)度,它們是所述目的端的本地?cái)?shù)據(jù),所述本地?cái)?shù)據(jù)是通過以下方式提供給所述關(guān)鍵參數(shù)采集 模塊的反饋機(jī)制、通信、或共享數(shù)據(jù)庫(kù)。
4. 根據(jù)權(quán)利要求2所述的方法,其特征在于,當(dāng)所述目的端是第 三方系統(tǒng)時(shí),所述關(guān)鍵參數(shù)包括消息隊(duì)列積壓長(zhǎng)度、消息反 饋時(shí)延、和超時(shí)消息個(gè)數(shù)。
5. 根據(jù)權(quán)利要求4所述的方法,其特征在于,在所述步驟二中, 4丸4亍以下處理所述決策模塊得到所述每個(gè)目的端的一個(gè)負(fù)載指數(shù);以及所述決策模塊根據(jù)所述負(fù)載指數(shù)判斷所述目的端的處理 能力。
6. 根據(jù)權(quán)利要求5所述的方法,其特征在于,所述負(fù)載指數(shù)與所 述消息隊(duì)列積壓長(zhǎng)度、消息反饋時(shí)延、和超時(shí)消息個(gè)數(shù)相關(guān)聯(lián)。
7. 根據(jù)權(quán)利要求6所述的方法,其特征在于,所述負(fù)載指數(shù)小,則表示所述消息隊(duì)列積壓長(zhǎng)度、消息反 饋時(shí)延、或超時(shí)消息個(gè)數(shù)的延遲小,所述目的端的處理能力好。
8. 根據(jù)權(quán)利要求7所述的方法,其特征在于,與所述消息隊(duì)列積壓長(zhǎng)度相關(guān)聯(lián)的負(fù)載指數(shù)所表征的延 遲能力最小,與所述超時(shí)消息個(gè)數(shù)相關(guān)聯(lián)的負(fù)載指數(shù)所表征的延遲能 力最大,以及與所述消息反饋時(shí)延相關(guān)聯(lián)的負(fù)載指數(shù)所表征的延遲能 力居中。
9. 根據(jù)權(quán)利要求5所述的方法,其特征在于,在所述步驟二中還 4丸4亍以下處理通過一個(gè)過載4企測(cè)纟莫塊確定所述目的端是否過載;當(dāng)所述目的端過載時(shí),所述過載才企測(cè)4莫塊向所述決策才莫塊 發(fā)送一個(gè)過載處理命令,,人而減少所述目的端的負(fù)載。
10. 4艮據(jù)權(quán)利要求9所述的方法,其特征在于,在所述步驟二中,當(dāng)每個(gè)所述目的端都過載時(shí),則所述決策模塊進(jìn)入降級(jí)模 式,限制所述源端發(fā)送的所述消息的數(shù)量。
11. 根據(jù)權(quán)利要求9所述的方法,其特征在于,在所述步驟二中,當(dāng)所述過載檢測(cè)模塊判斷所述每個(gè)目的端過載成斷鏈時(shí), 所述目的端不接收所述消息。
12. 根據(jù)權(quán)利要求1所述的方法,其特征在于,在所述步驟三中執(zhí) 行以下處理所述消息處理模塊接收到來自所述源端的所述消息;所述消息處理模塊向所述決策模塊發(fā)出取決策指令;以及所述消息處理才莫塊沖艮據(jù)所述決策才莫塊返回的關(guān)于所述每 個(gè)目的端的處理能力來分發(fā)所述消息。
13. —種動(dòng)態(tài)反饋負(fù)載分發(fā)裝置,用于在多個(gè)目的端與源端之間動(dòng) 態(tài)分發(fā)消息,其特征在于,包括關(guān)鍵參數(shù)采集模塊,用于收集所述多個(gè)目的端中的每個(gè)目 的端的關(guān)鍵參數(shù),并將所述關(guān)鍵參數(shù)發(fā)送至決策模塊;所述決策才莫塊,用于對(duì)所述關(guān)4建參凄t進(jìn)行分析,以確定每 個(gè)所述目的端的處理能力,并將所述處理能力發(fā)送給所述消息 處理纟莫塊;以及消息處理模塊,用于接收來自所述源端的所述信息,并根 據(jù)每個(gè)所述目的端的處理能力來分發(fā)所述消息。
14. 根據(jù)權(quán)利要求13所述的裝置,其特征在于,還包括過載檢測(cè)模塊,用于分析所述關(guān)鍵參數(shù),并根據(jù)所述關(guān)鍵 參凄t配置門限來確定所述目的端是否過栽。
15. 根據(jù)權(quán)利要求13所述的裝置,其特征在于,所述過載檢測(cè)模 塊還用于當(dāng)所述目的端過載時(shí),啟動(dòng)過載才幾制,降^氐所述目的 端的所述消息的數(shù)量,并且當(dāng)每個(gè)所述目的端都過載時(shí),啟動(dòng) 降《及一幾制。
16. 根據(jù)權(quán)利要求13所述的裝置,其特征在于,所述關(guān)鍵參數(shù)是 由CPU占用率、內(nèi)存占用率、和消息隊(duì)列積壓長(zhǎng)度構(gòu)成的組 合,或由消息隊(duì)列積壓長(zhǎng)度、消息反饋時(shí)延、和超時(shí)消息個(gè)數(shù) 構(gòu)成的組合。
全文摘要
本發(fā)明提供了一種動(dòng)態(tài)反饋負(fù)載分發(fā)方法和裝置,其中,該方法包括以下步驟步驟一,通過關(guān)鍵參數(shù)采集模塊收集多個(gè)目的端中的每個(gè)目的端的關(guān)鍵參數(shù),并將關(guān)鍵參數(shù)發(fā)送至決策模塊;步驟二,決策模塊對(duì)關(guān)鍵參數(shù)進(jìn)行分析,以確定每個(gè)目的端的處理能力;以及步驟三,當(dāng)接收到來自源端的信息時(shí),消息處理模塊根據(jù)保存在消息處理模塊中的關(guān)于每個(gè)目的端的處理能力來分發(fā)消息。因此,采用本發(fā)明,可以收集各目的端相關(guān)信息,通過分析比較,實(shí)時(shí)選擇當(dāng)前處理能力較強(qiáng)的目的端作為分發(fā)目標(biāo),較之輪詢、根據(jù)IP或用戶號(hào)碼配置選擇路由等靜態(tài)分發(fā)方式更為靈活、主動(dòng),適應(yīng)性更強(qiáng)。
文檔編號(hào)H04L12/24GK101174986SQ20071016625
公開日2008年5月7日 申請(qǐng)日期2007年11月7日 優(yōu)先權(quán)日2007年11月7日
發(fā)明者強(qiáng) 劉 申請(qǐng)人:中興通訊股份有限公司