本發(fā)明涉及融合通信技術,尤指一種實現(xiàn)負荷分擔的方法、接口機、業(yè)務處理機及系統(tǒng)。
背景技術:
隨著移動互聯(lián)網(wǎng)的快速發(fā)展,通過互聯(lián)網(wǎng)向用戶提供各種應用服務(OTT)業(yè)務大步向前進,強烈沖擊著電信傳統(tǒng)的語音和短消息業(yè)務。全球移動通信系統(tǒng)協(xié)會(GSMA)在2009年公布了融合通信(RCS)計劃,得到了多家歐洲運營商的響應。2010年,由西班牙的西班牙電話公司(Telefonica)、英國沃達豐、法國Orange(法國的移動營運商)、意大利電信及德國電信在內(nèi)的歐洲五大電信巨頭,決定聯(lián)合推出自有即時通信系統(tǒng),并命名為“Joyn”,以此正式向OTT應用宣戰(zhàn)。
通過融合通信能力網(wǎng)關將融合通信的功能開放,可以降低對移動終端和開發(fā)者的要求,同時可以利用開發(fā)者自身優(yōu)勢開發(fā)出豐富的應用。隨著移動互聯(lián)網(wǎng)業(yè)務和融合通信的發(fā)展,對融合通信能力網(wǎng)關的處理能力要求越來越高,單節(jié)點已經(jīng)不能滿足要求,因此需要分布式,多節(jié)點才能滿足。對于分布式、多節(jié)點,其中有一個重要的問題就是如何有效的將負荷分擔到各個業(yè)務處理機上,從而讓每個業(yè)務處理機能夠充分發(fā)揮自己的處理能力,完成海量業(yè)務的處理。
由于各業(yè)務處理機的硬件配置和操作系統(tǒng)及安裝的應用可能不同,操作系統(tǒng)和安裝的應用程序?qū)ο到y(tǒng)資源占用會存在差異,同時融合通信的不同業(yè)務對業(yè)務處理機的資源占用不同,因此,需要確定如何將業(yè)務分配給合適的業(yè)務處理機,進行負荷分擔。目前,短消息網(wǎng)關采用了專利“一種多模塊短消息系統(tǒng)的負荷分擔方法”,以消息中的特征串(如源號碼)結合業(yè)務處理機的處理能力,按照HASH算法實現(xiàn)業(yè)務的均分。由于融合通信業(yè)務上的差異,短消息是相對獨立的,而融合通信有會話內(nèi)的消息業(yè)務,例如1對1聊天、 群聊等基于會話業(yè)務的消息,會話業(yè)務的消息需要分配到同一個業(yè)務處理機,用于與核心網(wǎng)需要建立會話,由于會話業(yè)務消息的消息數(shù)不同,且會話傳輸也存在較大的處理能力需求差異;因此,如果按照特征串進行業(yè)務分發(fā)則會造成業(yè)務處理機負荷不均。
技術實現(xiàn)要素:
為了解決上述技術問題,本發(fā)明提供一種實現(xiàn)負荷分擔的方法及系統(tǒng),能夠根據(jù)業(yè)務對處理能力需求及業(yè)務處理及處理能力進行負荷分擔。
為了達到本發(fā)明目的,本發(fā)明提供了一種實現(xiàn)負荷分擔的方法,包括:
接口機接收各業(yè)務處理機按照定時間隔計算的處理能力值;
根據(jù)接收的所有業(yè)務處理機的處理能力值,接口機進行會話業(yè)務的負荷分擔。
進一步地,定時間隔由預先設定的業(yè)務處理機均衡參數(shù)確定。
進一步地,處理能力值由會話能力值、和/或消息能力值、和/或中央處理器CPU能力值、和/或內(nèi)存能力值、和/或磁盤能力值進行累加后計算獲得。
進一步地,當獲得所述業(yè)務處理機的處理能力值中包含所述會話能力值時,該方法之前還包括:獲取所述會話能力值:
以所述業(yè)務處理機的可用端口數(shù)作為業(yè)務處理機的最大會話數(shù),讀取獲得所述業(yè)務處理機的當前會話數(shù),將最大會話數(shù)減去當前會話數(shù)獲得可用會話數(shù),將可用會話數(shù)除以最大會話數(shù)乘以預先設定的會話權重值,獲得所述會話能力值;
當獲得所述業(yè)務處理機的處理能力值中包含所述消息能力值時,該方法之前還包括:獲取所述消息能力值:根據(jù)所述業(yè)務處理機配置確定其相應的最大積壓消息數(shù),根據(jù)讀取獲得的當前積壓消息數(shù),將最大積壓消息數(shù)減去當前積壓消息數(shù)獲得可處理消息數(shù),將可處理消息數(shù)除以最大積壓消息數(shù)乘以預先設定的消息權重值,獲得所述消息能力值;
當獲得所述業(yè)務處理機的處理能力值中包含所述CPU能力值時,該方法之前還包括:獲取所述CPU能力值:
預先確定所述業(yè)務處理機的CPU最大占用率,讀取獲得的當前CPU占用率,將CPU最大占用率減去當前CPU占用率,獲得CPU可用率,將CPU可用率除以CPU最大占用率乘以預先設定的CPU權重值,獲得所述CPU能力值;
當獲得所述業(yè)務處理機的處理能力值中包含所述內(nèi)存能力值時,該方法之前還包括:獲取所述內(nèi)存能力值:
預先確定所述業(yè)務處理機的內(nèi)存最大占用率,讀取當前內(nèi)存占用率,將所述內(nèi)存最大占用率減去所述當前內(nèi)存占用率獲得內(nèi)存可用率,將內(nèi)存可用率除以內(nèi)存最大占用率乘以預先設定的內(nèi)存權重值,獲得所述內(nèi)存能力值;
當獲得所述業(yè)務處理機的處理能力值中包含所述磁盤能力值時,該方法之前還包括:獲取所述磁盤能力值:
預先確定所述業(yè)務處理機的最大磁盤占用率,讀取當前磁盤占用率,將所述最大磁盤占用率減去所述當前磁盤占用率獲得磁盤可用率,將磁盤可用率除以最大磁盤占用率乘以預先設定的磁盤權重值,獲得所述磁盤能力值。
進一步地,當計算所述業(yè)務處理機的處理能力值中的會話能力值、和/或消息能力值、和/或中央處理器CPU能力值、和/或內(nèi)存能力值、和/或磁盤能力值存在一個或一個以上值小于或等于0時,該方法還包括:賦值所述業(yè)務處理機的處理能力值為0。
進一步地,該方法還包括:所述接口機獲取所有業(yè)務處理機工作狀態(tài),當業(yè)務處理機宕機時,賦值宕機的所述業(yè)務處理機的處理能力值為0。
進一步地,根據(jù)各所述業(yè)務處理機的處理能力值,進行會話業(yè)務的負荷分擔具體包括:
根據(jù)各業(yè)務處理機的處理能力值的數(shù)值大小比例,均勻分擔接口機接收到的業(yè)務。
進一步地,根據(jù)各業(yè)務處理機的處理能力值的數(shù)值大小比例,均勻分擔接口機接收到的業(yè)務具體包括:
將各業(yè)務處理機的處理能力值累加獲得能力累加和;
取非會話業(yè)務的消息的特征串中發(fā)起者號碼的后四位加上特征串中任一 接收者號碼的后四位獲得特征數(shù)值;
將獲得的特征數(shù)值用獲得的能力累加和取模,獲得負荷分擔參考值;
將所有所述業(yè)務處理機的處理能力值按照由小到大排列后,從業(yè)務處理機的處理能力值最小值開始,分別計算第1個到第I個業(yè)務處理機的處理能力值的累加和,獲得各業(yè)務處理機相應的負荷分擔確定值;
當出現(xiàn)所述負荷分擔確定值大于所述負荷分擔參考值時,確定該負荷分擔確定值對應的第I個業(yè)務處理機為業(yè)務分擔的業(yè)務處理機;
其中,I為大于1小于業(yè)務處理機的處理能力值大于0的業(yè)務處理機個數(shù)值。
進一步地,該方法之前還包括:所述接口機從能力網(wǎng)關服務器接收負荷分擔給業(yè)務處理機的會話業(yè)務的消息。
另一方面,本申請還提供一種實現(xiàn)負荷分擔的接口機,包括:接收單元200及負荷分擔單元201;其中,
接收單元200,用于接收各業(yè)務處理機按照定時間隔計算的處理能力值;
負荷分擔單元201,用于根據(jù)接收的所有業(yè)務處理機的處理能力值,進行會話業(yè)務的負荷分擔。
進一步地,接口機還包括賦值單元202,用于獲取所有業(yè)務處理機工作狀態(tài),當業(yè)務處理機宕機時,賦值宕機的所述業(yè)務處理機的處理能力值為0。
進一步地,負荷分擔單元201具體用于,
根據(jù)各業(yè)務處理機的處理能力值的數(shù)值大小比例,均勻分擔接口機接收到的業(yè)務。
進一步地,接口機還包括接收業(yè)務單元203,用于從能力網(wǎng)關服務器接收負荷分擔給業(yè)務處理機的會話業(yè)務的消息。
再一方面,本申請還提供一種實現(xiàn)負荷分擔的業(yè)務處理機,至少包括計算上報單元300,用于按照定時間隔計算自身的處理能力值上報給接口機。
進一步地,計算上報單元300具體用于,按照定時間隔由會話能力值、和/或消息能力值、和/或CPU能力值、和/或內(nèi)存能力值、和/或磁盤能力值 進行累加后計算獲得處理能力值。
進一步地,該業(yè)務處理機還包括獲取能力值單元301,用于
當獲得所述業(yè)務處理機的處理能力值中包含所述會話能力值時,獲取所述會話能力值:以所述業(yè)務處理機的可用端口數(shù)作為業(yè)務處理機的最大會話數(shù),讀取獲得所述業(yè)務處理機的當前會話數(shù),將最大會話數(shù)減去當前會話數(shù)獲得可用會話數(shù),將可用會話數(shù)除以最大會話數(shù)乘以預先設定的會話權重值,獲得所述會話能力值;
當獲得所述業(yè)務處理機的處理能力值中包含所述消息能力值時,獲取所述消息能力值:根據(jù)所述業(yè)務處理機配置確定其相應的最大積壓消息數(shù),根據(jù)讀取獲得的當前積壓消息數(shù),將最大積壓消息數(shù)減去當前積壓消息數(shù)獲得可處理消息數(shù),將可處理消息數(shù)除以最大積壓消息數(shù)乘以預先設定的消息權重值,獲得所述消息能力值;
當獲得所述業(yè)務處理機的處理能力值中包含所述CPU能力值時,獲取所述CPU能力值:預先確定所述業(yè)務處理機的CPU最大占用率,讀取獲得的當前CPU占用率,將CPU最大占用率減去當前CPU占用率,獲得CPU可用率,將CPU可用率除以CPU最大占用率乘以預先設定的CPU權重值,獲得所述CPU能力值;
當獲得所述業(yè)務處理機的處理能力值中包含所述內(nèi)存能力值時,獲取所述內(nèi)存能力值:預先確定所述業(yè)務處理機的內(nèi)存最大占用率,讀取當前內(nèi)存占用率,將所述內(nèi)存最大占用率減去所述當前內(nèi)存占用率獲得內(nèi)存可用率,將內(nèi)存可用率除以內(nèi)存最大占用率乘以預先設定的內(nèi)存權重值,獲得所述內(nèi)存能力值;
當獲得業(yè)務處理機的處理能力值中包含所述磁盤能力值時,獲取所述磁盤能力值:預先確定所述業(yè)務處理機的最大磁盤占用率,讀取當前磁盤占用率,將所述最大磁盤占用率減去所述當前磁盤占用率獲得磁盤可用率,將磁盤可用率除以最大磁盤占用率乘以預先設定的磁盤權重值,獲得所述磁盤能力值。
進一步地,計算上報單元300還用于,當計算所述業(yè)務處理機的處理能力值中的會話能力值、消息能力值、CPU能力值、內(nèi)存能力值、或磁盤能力 值存在一個或一個以上值小于或等于0時,賦值業(yè)務處理機的處理能力值為0。
又一方面,本申請還提供一種實現(xiàn)負荷分擔的系統(tǒng),包括:接口機及若干業(yè)務處理機;其中,
業(yè)務處理機至少包含計算上報單元300,用于按照定時間隔計算自身的處理能力值上報給接口機;
接口機至少包含負荷分擔單元201,用于根據(jù)各業(yè)務處理機的處理能力值,進行會話業(yè)務的負荷分擔。
與現(xiàn)有技術相比,本申請技術方案包括:接口機接收各業(yè)務處理機按照定時間隔計算的處理能力值;根據(jù)接收的所有業(yè)務處理機的處理能力值,接口機進行會話業(yè)務的負荷分擔。本發(fā)明方法通過計算業(yè)務處理機的處理能力值,以處理能力值為依據(jù)進行會話業(yè)務的負荷分擔,保證了系統(tǒng)內(nèi)業(yè)務處理機的負荷均衡。
附圖說明
此處所說明的附圖用來提供對本發(fā)明的進一步理解,構成本申請的一部分,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構成對本發(fā)明的不當限定。在附圖中:
圖1為本發(fā)明實現(xiàn)負荷分擔的方法的流程圖;
圖2為本發(fā)明實現(xiàn)負荷分擔的接口機的結構框圖;
圖3為本發(fā)明實現(xiàn)負荷分擔的業(yè)務處理機的結構框圖;
圖4為本發(fā)明實現(xiàn)負荷分擔的系統(tǒng)的結構程圖。
具體實施方式
為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚明白,下文中將結合附圖對本發(fā)明的實施例進行詳細說明。需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互任意組合。
圖1為本發(fā)明實現(xiàn)負荷分擔的方法的流程圖,如圖1所示,包括:
步驟100、接口機接收各業(yè)務處理機按照定時間隔計算的處理能力值。
本步驟中,業(yè)務處理機計算處理能力值的定時間隔由預先設定的業(yè)務處理機均衡參數(shù)確定;這里,可以取業(yè)務處理機中節(jié)點的系統(tǒng)負荷確定均衡參數(shù);例如,讀取業(yè)務處理機中最忙節(jié)點的系統(tǒng)負荷比最閑節(jié)點的系統(tǒng)負荷高于一定百分比時,設定按照一定比例調(diào)整上報間隔的百分比,例如最忙節(jié)點的系統(tǒng)負荷比最閑節(jié)點的系統(tǒng)負荷高于設定的均衡參數(shù)30%時,定時間隔減少10個百分比。
需要說明的是,系統(tǒng)負荷可以通過現(xiàn)有命令查看獲得,例如,在Linux系統(tǒng)中,可以用w或uptime或procinfo或top命令查看各節(jié)點的系統(tǒng)負荷。
本步驟中,業(yè)務處理機的處理能力值由會話能力值、和/或消息能力值、和/或CPU能力值、和/或內(nèi)存能力值、和/或磁盤能力值進行累加后計算獲得。
優(yōu)選的,當獲得業(yè)務處理機的處理能力值中包含會話能力值時,本發(fā)明方法之前還包括:獲取會話能力值:
以業(yè)務處理機的可用端口數(shù)作為業(yè)務處理機的最大會話數(shù),讀取獲得業(yè)務處理機的當前會話數(shù),將最大會話數(shù)減去當前會話數(shù)獲得可用會話數(shù),將可用會話數(shù)除以最大會話數(shù)乘以預先設定的會話權重值,獲得會話能力值。
當獲得業(yè)務處理機的處理能力值中包含消息能力值時,本發(fā)明方法之前還包括:獲取消息能力值:
根據(jù)業(yè)務處理機配置確定其相應的最大積壓消息數(shù),根據(jù)讀取獲得的當前積壓消息數(shù),將最大積壓消息數(shù)減去當前積壓消息數(shù)獲得可處理消息數(shù),將可處理消息數(shù)除以最大積壓消息數(shù)乘以預先設定的消息權重值,獲得消息能力值。
當獲得業(yè)務處理機的處理能力值中包含CPU能力值時,本發(fā)明方法之前還包括:獲取CPU能力值:
預先確定業(yè)務處理機的CPU最大占用率,讀取獲得的當前CPU占用率,將CPU最大占用率減去當前CPU占用率,獲得CPU可用率,將CPU可用率除以CPU最大占用率乘以預先設定的CPU權重值,獲得CPU能力值。
當獲得業(yè)務處理機的處理能力值中包含內(nèi)存能力值時,本發(fā)明方法之前還包括:獲取內(nèi)存能力值:
預先確定業(yè)務處理機的內(nèi)存最大占用率,讀取當前內(nèi)存占用率,將內(nèi)存最大占用率減去當前內(nèi)存占用率獲得內(nèi)存可用率,將內(nèi)存可用率除以內(nèi)存最大占用率乘以預先設定的內(nèi)存權重值,獲得內(nèi)存能力值。
當獲得業(yè)務處理機的處理能力值中包含磁盤能力值時,本發(fā)明方法之前還包括:獲取磁盤能力值:
預先確定業(yè)務處理機的最大磁盤占用率,讀取當前磁盤占用率,將最大磁盤占用率減去當前磁盤占用率獲得磁盤可用率,將磁盤可用率除以最大磁盤占用率乘以預先設定的磁盤權重值,獲得磁盤能力值。
需要說明的是,通過設定會話權重值、和/或消息權重值、和/或CPU權重值、和/或內(nèi)存權重值、和/或磁盤權重值的數(shù)值大小,可以實現(xiàn)對業(yè)務所需處理能力大小進行顯示,例如、如果業(yè)務處理時,業(yè)務處理機的CPU可用率為業(yè)務負荷時主要考慮因素,則CPU權重值應當設定比其他權重值數(shù)值大,具體大小可以根據(jù)本領域技術人員的經(jīng)驗進行設定。
業(yè)務處理機的處理能力值除了由會話能力值、和/或消息能力值、和/或CPU能力值、和/或內(nèi)存能力值、和/或磁盤能力值計算獲得外,還可以引入相關參數(shù)進行技術,例如、引入業(yè)務處理機的核心顯存進行業(yè)務處理機的處理能力值計算,如果對業(yè)務負荷分擔影響較小,則可以通過設置較小的權重值進行計算。
當計算業(yè)務處理機的處理能力值中的會話能力值、消息能力值、CPU能力值、內(nèi)存能力值、或磁盤能力值存在一個或一個以上值小于或等于0時,本發(fā)明方法還包括:賦值業(yè)務處理機的處理能力值為0;
本發(fā)明方法還包括:接口機獲取業(yè)務處理機工作狀態(tài),當業(yè)務處理機宕機時,賦值宕機的業(yè)務處理機的處理能力值為0。
步驟101、根據(jù)接收的所有業(yè)務處理機的處理能力值,接口機進行會話業(yè)務的負荷分擔。
本步驟具體包括:根據(jù)各業(yè)務處理機的處理能力值的數(shù)值大小比例,均勻分擔接口機接收到的業(yè)務。
優(yōu)選的,將各業(yè)務處理機的處理能力值累加獲得能力累加和;
取非會話業(yè)務的消息的特征串中發(fā)起者號碼的后四位加上特征串中任一接收者號碼的后四位獲得特征數(shù)值;
將獲得的特征數(shù)值用獲得的能力累加和取模,獲得負荷分擔參考值;
將業(yè)務處理機的處理能力值按照由小到大排列后,
從業(yè)務處理機的處理能力值最小值開始,分別計算第1到第I個業(yè)務處理機的處理能力值的累加和,獲得各業(yè)務處理機相應的負荷分擔確定值;
當出現(xiàn)負荷分擔確定值大于負荷分擔參考值時,確定該負荷分擔確定值對應的第I個業(yè)務處理機為業(yè)務分擔的業(yè)務處理機。
I為大于1小于業(yè)務處理機的處理能力值大于0的業(yè)務處理機個數(shù)值。
本發(fā)明方法之前還包括:接口機從能力網(wǎng)關服務器接收負荷分擔給業(yè)務處理機的會話業(yè)務的消息。
圖2為本發(fā)明實現(xiàn)負荷分擔的接口機的結構框圖,包括:接收單元200及負荷分擔單元201;其中,
接收單元200,用于接收各業(yè)務處理機按照定時間隔計算的處理能力值;
負荷分擔單元201,用于根據(jù)接收的所有業(yè)務處理機的處理能力值,進行會話業(yè)務的負荷分擔。
負荷分擔單元201具體用于,
根據(jù)各業(yè)務處理機的處理能力值的數(shù)值大小比例,均勻分擔接口機接收到的業(yè)務。
本發(fā)明接口機還包括賦值單元202,用于獲取所有業(yè)務處理機工作狀態(tài),當業(yè)務處理機宕機時,賦值宕機的業(yè)務處理機的處理能力值為0。
接口機還包括接收業(yè)務單元203,用于從能力網(wǎng)關服務器接收負荷分擔給業(yè)務處理機的會話業(yè)務的消息。
圖3為本發(fā)明實現(xiàn)負荷分擔的業(yè)務處理機的結構框圖,如圖3所示,至少包括計算上報單元300,用于按照定時間隔計算自身的處理能力值上報給接口機。
計算上報單元300具體用于,按照定時間隔由會話能力值、和/或消息能 力值、和/或CPU能力值、和/或內(nèi)存能力值、和/或磁盤能力值進行累加后計算獲得處理能力值。
本發(fā)明業(yè)務處理機還包括獲取能力值單元301,用于
當獲得業(yè)務處理機的處理能力值中包含會話能力值時,獲取會話能力值:以業(yè)務處理機的可用端口數(shù)作為業(yè)務處理機的最大會話數(shù),讀取獲得業(yè)務處理機的當前會話數(shù),將最大會話數(shù)減去當前會話數(shù)獲得可用會話數(shù),將可用會話數(shù)除以最大會話數(shù)乘以預先設定的會話權重值,獲得會話能力值;
當獲得業(yè)務處理機的處理能力值中包含消息能力值時,獲取消息能力值:根據(jù)業(yè)務處理機配置確定其相應的最大積壓消息數(shù),根據(jù)讀取獲得的當前積壓消息數(shù),將最大積壓消息數(shù)減去當前積壓消息數(shù)獲得可處理消息數(shù),將可處理消息數(shù)除以最大積壓消息數(shù)乘以預先設定的消息權重值,獲得消息能力值;
當獲得業(yè)務處理機的處理能力值中包含CPU能力值時,獲取CPU能力值:預先確定業(yè)務處理機的CPU最大占用率,讀取獲得的當前CPU占用率,將CPU最大占用率減去當前CPU占用率,獲得CPU可用率,將CPU可用率除以CPU最大占用率乘以預先設定的CPU權重值,獲得CPU能力值;
當獲得業(yè)務處理機的處理能力值中包含內(nèi)存能力值時,獲取內(nèi)存能力值:預先確定業(yè)務處理機的內(nèi)存最大占用率,讀取當前內(nèi)存占用率,將內(nèi)存最大占用率減去當前內(nèi)存占用率獲得內(nèi)存可用率,將內(nèi)存可用率除以內(nèi)存最大占用率乘以預先設定的內(nèi)存權重值,獲得內(nèi)存能力值;
當獲得業(yè)務處理機的處理能力值中包含磁盤能力值時,獲取磁盤能力值:預先確定業(yè)務處理機的最大磁盤占用率,讀取當前磁盤占用率,將最大磁盤占用率減去當前磁盤占用率獲得磁盤可用率,將磁盤可用率除以最大磁盤占用率乘以預先設定的磁盤權重值,獲得磁盤能力值。
計算上報單元300還用于,當計算業(yè)務處理機的處理能力值中的會話能力值、消息能力值、CPU能力值、內(nèi)存能力值、或磁盤能力值存在一個或一個以上值小于或等于0時,賦值業(yè)務處理機的處理能力值為0。
圖4為本發(fā)明實現(xiàn)負荷分擔的系統(tǒng)的結構程圖,如圖4所示,包括:接 口機及若干業(yè)務處理機;其中,
業(yè)務處理機至少包含計算上報單元300,用于按照定時間隔計算自身的處理能力值上報給接口機;
接口機至少包含負荷分擔單元201,用于根據(jù)各業(yè)務處理機的處理能力值,進行會話業(yè)務的負荷分擔。
以下通過具體實施例對本發(fā)明方法進行清楚詳細的說明,實施例僅用于陳述本發(fā)明,并不用于限制本發(fā)明方法的保護范圍。
實施例1
本實施以應用下行到終端的業(yè)務的消息為例進行說明,本實施例設定業(yè)務處理機的處理能力值最大值為1000,根據(jù)處理能力值的最大值進行權重值的設定。
能力網(wǎng)關服務器接收到應用業(yè)務的消息,將業(yè)務的消息發(fā)送到接口機;
接口機根據(jù)定時間隔進行業(yè)務處理機的處理能力值上報確定業(yè)務的負荷分擔。
進行業(yè)務分擔的業(yè)務處理機將業(yè)務的消息發(fā)送到核心網(wǎng),核心網(wǎng)將消息發(fā)往目的終端。其中,業(yè)務處理機的處理能力值及業(yè)務的負荷分擔通過以下方式實現(xiàn)。
業(yè)務處理機按照定時間隔計算自身的處理能力值上報給接口機;其中,
定時間隔由預先設定的節(jié)點均衡參數(shù)設定及調(diào)整,例如,讀取業(yè)務處理機中最忙節(jié)點的系統(tǒng)負荷比最閑節(jié)點的系統(tǒng)負荷高于一定百分比時,設定按照一定比例調(diào)整上報間隔的百分比,例如最忙節(jié)點的系統(tǒng)負荷比最閑節(jié)點的系統(tǒng)負荷高于30%時,定時間隔減少10個百分比,定時間隔以1秒到60秒為優(yōu)選值。
需要說明的是,系統(tǒng)負荷可以通過現(xiàn)有命令查看獲得,例如,在Linux系統(tǒng)中,可以用w或uptime或procinfo或top命令查看各節(jié)點的系統(tǒng)負荷。
本步驟中,業(yè)務處理機的處理能力值由會話能力值、和/或消息能力值、和/或CPU能力值、和/或內(nèi)存能力值、和/或磁盤能力值計算獲得。
優(yōu)選的,以業(yè)務處理機的可用端口數(shù)作為業(yè)務處理機的最大會話數(shù),讀取獲得業(yè)務處理機的當前會話數(shù),將最大會話數(shù)減去當前會話數(shù)獲得可用會話數(shù),將可用會話數(shù)除以最大會話數(shù)乘以預先設定的會話權重值,獲得會話能力值。
由于業(yè)務處理機的端口數(shù)最大限制為65535,需要預留部分給系統(tǒng)和相關應用使用,業(yè)務處理機的可用端口數(shù)小于65535,業(yè)務的會話建立需要用到業(yè)務處理機的端口,業(yè)務的會話數(shù)會受此限制,一般來說,業(yè)務處理機的可用端口數(shù)可以設定為60000,當然,可以根據(jù)系統(tǒng)和相關應用對端口的使用情況進行調(diào)整。由于,業(yè)務的會話數(shù)主要受端口資源的影響,對系統(tǒng)CPU,內(nèi)存影響不大,因此權重可以調(diào)低一點,例如、100。
假定,業(yè)務處理機的最大會話數(shù)為60000,當前會話數(shù)10000,會話權重值為100,則獲得會話能力值為:(60000-10000)/60000*100=83
根據(jù)業(yè)務處理機配置確定其相應的最大積壓消息數(shù),根據(jù)讀取獲得的當前積壓消息數(shù),將最大積壓消息數(shù)減去當前積壓消息數(shù)獲得可處理消息數(shù),將可處理消息數(shù)除以最大積壓消息數(shù)乘以預先設定的消息權重值,獲得消息能力值。
消息能力值是本發(fā)明業(yè)務處理機業(yè)務負荷分擔的重要參考依據(jù),因此,需要設定較大的權重值,如、設定消息權重值為300。
假定最大積壓消息數(shù)為1000,設定消息權重值為300,當前積壓消息數(shù)為100,則消息能力值為:(1000-100)/1000*300=270。這里,如果當前積壓消息數(shù)已超過最大積壓消息數(shù)說明業(yè)務處理機已滿負荷,此時,消息能力值為0。
預先確定業(yè)務處理機的CPU最大占用率,讀取獲得的當前CPU占用率,將CPU最大占用率減去當前CPU占用率,獲得CPU可用率,將CPU可用率除以CPU最大占用率乘以預先設定的CPU權重值,獲得CPU能力值。
CPU能力值是本發(fā)明業(yè)務處理機業(yè)務負荷分擔的重要參考依據(jù),因此,需要設定較大的權重值,如、設定CPU權重值為300。
預先確定業(yè)務處理機的CPU最大占用率為80%,CPU權重值為300, 當前CPU占用率為60%,則CPU能力值為:(80-60)/80*300=75。
預先確定業(yè)務處理機的內(nèi)存最大占用率,讀取當前內(nèi)存占用率,將內(nèi)存最大占用率減去當前內(nèi)存占用率獲得內(nèi)存可用率,將內(nèi)存可用率除以內(nèi)存最大占用率乘以預先設定的內(nèi)存權重值,獲得內(nèi)存能力值。
內(nèi)存能力值是本發(fā)明業(yè)務處理機業(yè)務負荷分擔的一個參考依據(jù),設定權重大于處于中等低位,如、設定內(nèi)存權重值為200。
預先確定業(yè)務處理機的內(nèi)存最大占用率為80%,內(nèi)存權重值為200,當前內(nèi)存占用率為60%,則內(nèi)存能力值為(80-60)/80*200=50。
預先確定業(yè)務處理機的最大磁盤占用率,讀取當前磁盤占用率,將最大磁盤占用率減去當前磁盤占用率獲得磁盤可用率,將磁盤可用率除以最大磁盤占用率乘以預先設定的磁盤權重值,獲得磁盤能力值。
磁盤對業(yè)務處理機的處理能力值計算其重要性略低,因此可以設定磁盤權重值為100。
預先確定業(yè)務處理機的最大磁盤占用率為80%,磁盤權重值為100,當前磁盤占用率為40%,則磁盤能力值為(80-40)/80*100=50。
接口機根據(jù)各業(yè)務處理機的處理能力值,進行會話業(yè)務的負荷分擔具體包括:將各業(yè)務處理機的處理能力值累加獲得能力累加和;
取非會話業(yè)務的消息的特征串中發(fā)起者號碼的后四位加上特征串中任一接收者號碼的后四位獲得特征數(shù)值;
將獲得的特征數(shù)值用獲得的能力累加和取模,獲得負荷分擔參考值;
將業(yè)務處理機的處理能力值按照由小到大排列后,
從業(yè)務處理機的處理能力值最小值開始,分別計算第1到第I個業(yè)務處理機的處理能力值的累加和,獲得各業(yè)務處理機相應的負荷分擔確定值;
當出現(xiàn)負荷分擔確定值大于負荷分擔參考值時,確定該負荷分擔確定值對應的第I個業(yè)務處理機為業(yè)務分擔的業(yè)務處理機。
I為大于1小于業(yè)務處理機的處理能力值大于0的業(yè)務處理機個數(shù)值。
假設計算業(yè)務處理機的業(yè)務處理機的處理能力值分別為500、700、811、 0;
將各業(yè)務處理機的處理能力值累加獲得能力累加和為500+700+811+0=2011。
取非會話業(yè)務的消息的特征串中發(fā)起者號碼的后四位加上特征串中任一接收者號碼的后四位獲得特征數(shù)值;
假設接口機收到的非會話業(yè)務的消息的特征串,發(fā)起者號碼為13612345678,任一接收者的號碼為13956782234,則獲得特征數(shù)值為5678+2234=7912。
將獲得的特征數(shù)值用獲得的能力累加和取模,獲得負荷分擔參考值;
將獲得特征數(shù)值用獲得能力累加和取模得為:7912用2011取模得到1879。
從業(yè)務處理機的處理能力值最小值開始,分別計算第1到第I個業(yè)務處理機的處理能力值的累加和,獲得各業(yè)務處理機相應的負荷分擔確定值;
即第1個業(yè)務處理機的處理能力值,對第1個到第2個業(yè)務處理機的業(yè)務處理機的處理能力值累加求和,對第1個到第3個業(yè)務處理機的業(yè)務處理機的處理能力值累加求和;獲得的值為500、1200、2011,
當出現(xiàn)負荷分擔確定值大于負荷分擔參考值時,確定該負荷分擔確定值對應的第I個業(yè)務處理機為業(yè)務分擔的業(yè)務處理機。
即2011大于1879時,確定該負荷分擔確定值對應的第3個業(yè)務處理機為業(yè)務分擔的業(yè)務處理機。即,接口機將業(yè)務負荷分擔給第三個業(yè)務處理機。
通過本實施方法,如果用戶A發(fā)起多條非會話內(nèi)業(yè)務的消息,不會固定分配到某個業(yè)務處理機,而是根據(jù)設定間隔上報的業(yè)務處理機的處理能力值進行調(diào)整,從而達到業(yè)務處理機的負荷分擔。通過獲取業(yè)務處理機的處理能力值,避免了固定按比例分發(fā)造成的負荷不均。
本實施例還包括:如果業(yè)務處理機出現(xiàn)宕機時,則宕機的業(yè)務處理機的處理機能力值被賦值為0,根據(jù)更新的處理機能力值重新選擇分發(fā)的業(yè)務處理機。因此,接口機也能很好的進行負荷調(diào)整,提高系統(tǒng)的平穩(wěn)運行。
雖然本發(fā)明所揭露的實施方式如上,但所述的內(nèi)容僅為便于理解本發(fā)明 而采用的實施方式,并非用以限定本發(fā)明。任何本發(fā)明所屬領域內(nèi)的技術人員,在不脫離本發(fā)明所揭露的精神和范圍的前提下,可以在實施的形式及細節(jié)上進行任何的修改與變化,但本發(fā)明的專利保護范圍,仍須以所附的權利要求書所界定的范圍為準。