專利名稱:一種消息隊列的負(fù)載均衡控制方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及移動通信技術(shù)領(lǐng)域,尤其涉及一種消息隊列的負(fù)載均衡控制方法及系統(tǒng)。
背景技術(shù):
現(xiàn)有移動通信技術(shù)領(lǐng)域中,精準(zhǔn)營銷系統(tǒng)的主要功能是處理信令采集系統(tǒng)、 BOSS (Business Operation Support System,業(yè)務(wù)運營支撐)系統(tǒng)等外部系統(tǒng)產(chǎn)生的大量實時數(shù)據(jù),過濾并加工處理產(chǎn)生業(yè)務(wù)事件,經(jīng)過應(yīng)用服務(wù)器對業(yè)務(wù)事件的處理,最終通過適當(dāng)渠道對用戶進(jìn)行營銷。信令采集系統(tǒng)采集大量的信令數(shù)據(jù),例如主被叫、短信收發(fā)、位置遷移、小區(qū)切換、 開關(guān)機(jī)等,并通過Socket接口發(fā)送給精準(zhǔn)營銷系統(tǒng)的前置機(jī),峰值速率達(dá)到1500000條/ 秒;BOSS系統(tǒng)也產(chǎn)生大量的IT事件發(fā)送給精準(zhǔn)營銷系統(tǒng)的前置機(jī)。信令采集系統(tǒng)、BOSS 系統(tǒng)等外部系統(tǒng)產(chǎn)生的大量實時數(shù)據(jù)又是非均衡的,例如信令數(shù)據(jù)中的主被叫、短信收發(fā)在每天的各時間段內(nèi)表現(xiàn)出非均衡性。針對精準(zhǔn)營銷系統(tǒng)中大數(shù)據(jù)量、以及非均衡的實時數(shù)據(jù),為了達(dá)到高實時性和高可靠性的要求,精準(zhǔn)營銷系統(tǒng)需要設(shè)計為彈性計算結(jié)構(gòu),分擔(dān)大數(shù)據(jù)量、以及非均衡的數(shù)據(jù)處理,抵擋峰值壓力,從而保證精準(zhǔn)營銷系統(tǒng)的實時性和可靠性。其中,精準(zhǔn)營銷系統(tǒng)中通過消息封裝將業(yè)務(wù)事件分發(fā)給消息隊列,因此需要實現(xiàn)消息隊列的負(fù)載均衡?,F(xiàn)有技術(shù)中,消息隊列的負(fù)載均衡方案,如圖1所示多個消息隊列組成消息隊列集群,消息首先發(fā)送到主隊列,再由主隊列進(jìn)行消息的分發(fā),負(fù)載均衡策略由主隊列控制;客戶端從消息隊列集群中固定的消息隊列中提取消息進(jìn)行業(yè)務(wù)處理?,F(xiàn)有技術(shù)中,消息隊列的負(fù)載均衡方案存在如下問題1、多個消息隊列組成消息隊列集群,消息首先發(fā)送到主隊列,再由主隊列進(jìn)行消息的分發(fā),負(fù)載均衡策略由主隊列控制,無法靈活地調(diào)整負(fù)載均衡策略;2、客戶端從消息隊列集群中固定的消息隊列中提取消息進(jìn)行業(yè)務(wù)處理,客戶端無法透明地切換消息隊列。因此,如何提升控制消息隊列負(fù)載均衡的靈活性,以及實現(xiàn)客戶端對消息隊列的靈活切換,成為現(xiàn)有技術(shù)中亟待解決的技術(shù)問題。
發(fā)明內(nèi)容
本發(fā)明實施例提供一種消息隊列的負(fù)載均衡控制方法及系統(tǒng),用以提升控制消息隊列負(fù)載均衡的靈活性,并實現(xiàn)客戶端對消息隊列的靈活切換。本發(fā)明實施例提供的消息隊列的負(fù)載均衡控制方法,包括輪詢每一個消息隊列的當(dāng)前深度,當(dāng)存在當(dāng)前深度達(dá)到預(yù)設(shè)的隊列深度告警閾值的過載消息隊列時,生成告警信息,所述告警信息中包括各過載消息隊列的標(biāo)識信息及其當(dāng)前深度;根據(jù)告警信息中各過載消息隊列的當(dāng)前深度、以及業(yè)務(wù)服務(wù)的平均處理能力,分別確定各過載消息隊列需要增加的業(yè)務(wù)服務(wù)數(shù)量;選取相應(yīng)數(shù)量且滿足配置條件的業(yè)務(wù)服務(wù),增加配置給告警信息中各過載消息隊列的標(biāo)識信息所指示的過載消息隊列。本發(fā)明實施例提供的消息隊列的負(fù)載均衡控制系統(tǒng),包括監(jiān)控模塊,用于輪詢每一個消息隊列的當(dāng)前深度,當(dāng)存在當(dāng)前深度達(dá)到預(yù)設(shè)的隊列深度告警閾值的過載消息隊列時,生成告警信息發(fā)送給平衡控制模塊,所述告警信息中包括各過載消息隊列的標(biāo)識信息及其當(dāng)前深度;控制子系統(tǒng),用于根據(jù)告警信息中各過載消息隊列的當(dāng)前深度、以及業(yè)務(wù)服務(wù)的平均處理能力,分別確定各過載消息隊列需要增加的業(yè)務(wù)服務(wù)數(shù)量;選取相應(yīng)數(shù)量且滿足配置條件的業(yè)務(wù)服務(wù),增加配置給告警信息中各過載消息隊列的標(biāo)識信息所指示的過載消息隊列。本發(fā)明實施例提供的消息隊列的負(fù)載均衡控制方法及系統(tǒng),摒棄了由主隊列控制負(fù)載均衡的模式,通過輪詢每一個消息隊列的當(dāng)前深度,當(dāng)某一個或多個消息隊列的隊列深度達(dá)到設(shè)定的隊列深度告警閾值時,確定各過載消息隊列需要增加的業(yè)務(wù)服務(wù)數(shù)量,并將滿足配置條件的業(yè)務(wù)服務(wù)增加配置給各過載消息隊列,從而達(dá)到了控制消息隊列負(fù)載均衡的目的,提升了靈活性;業(yè)務(wù)服務(wù)不再從固定的消息隊列中提取消息進(jìn)行業(yè)務(wù)處理,而是可以根據(jù)實際情況靈活為消息隊列配置業(yè)務(wù)服務(wù),實現(xiàn)了客戶端對消息隊列的靈活切換。本發(fā)明的其它特征和優(yōu)點將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點可通過在所寫的說明書、權(quán)利要求書、以及附圖中所特別指出的結(jié)構(gòu)來實現(xiàn)和獲得。
圖1為現(xiàn)有技術(shù)中消息隊列的負(fù)載均衡方案示意圖;圖2為本發(fā)明實施例中精準(zhǔn)營銷系統(tǒng)的架構(gòu)示意圖;圖3為本發(fā)明實施例中服務(wù)管理器管理業(yè)務(wù)服務(wù)的示意圖;圖4為本發(fā)明實施例中業(yè)務(wù)服務(wù)的注冊流程圖;圖5為本發(fā)明實施例中消息隊列的負(fù)載均衡控制系統(tǒng)框圖;圖6為本發(fā)明實施例中消息隊列的負(fù)載均衡控制方法流程圖;圖7為本發(fā)明實施例中第一種消息隊列的負(fù)載均衡控制流程圖;圖8為本發(fā)明實施例中第二種消息隊列的負(fù)載均衡控制流程圖。
具體實施例方式本發(fā)明實施例提供一種消息隊列的負(fù)載均衡控制方法及系統(tǒng),用以提升控制消息隊列負(fù)載均衡的靈活性,并實現(xiàn)客戶端對消息隊列的靈活切換。以下結(jié)合說明書附圖對本發(fā)明的優(yōu)選實施例進(jìn)行說明,應(yīng)當(dāng)理解,此處所描述的優(yōu)選實施例僅用于說明和解釋本發(fā)明,并不用于限定本發(fā)明,并且在不沖突的情況下,本發(fā)明中的實施例及實施例中的特征可以相互組合。
首先,對本發(fā)明實施例提供的消息隊列的負(fù)載均衡控制方案的典型應(yīng)用場景一一采用彈性計算結(jié)構(gòu)的精準(zhǔn)營銷系統(tǒng)進(jìn)行說明。精準(zhǔn)營銷系統(tǒng)的彈性計算結(jié)構(gòu)建立在采用基于消息中間件的SOA(Service-Oriented Architecture,面向服務(wù)架構(gòu))之上。SOA是一種架構(gòu)模型,可以根據(jù)需求通過網(wǎng)絡(luò)對松散耦合的粗粒度應(yīng)用組件進(jìn)行分布式部署、組合和使用;服務(wù)層是SOA的基礎(chǔ),可以直接被應(yīng)用調(diào)用,從而有效控制系統(tǒng)中與軟件代理交互的人為依賴性。精準(zhǔn)營銷系統(tǒng)的架構(gòu),如圖2所示精準(zhǔn)營銷系統(tǒng)中,各模塊通過消息封裝掛接到消息中間件,對外提供服務(wù)或向外請求服務(wù)。彈性計算的三類主要部件監(jiān)控服務(wù)、平衡控制服務(wù)和業(yè)務(wù)服務(wù)均是以SOA為基礎(chǔ)的,在精準(zhǔn)營銷系統(tǒng)中都以基于消息的服務(wù)形式封裝和部署。其中,部署了監(jiān)控服務(wù)的功能實體稱為監(jiān)控模塊,部署了平衡控制服務(wù)的功能實體稱為平衡控制模塊,部署了業(yè)務(wù)服務(wù)的功能實體稱為應(yīng)用服務(wù)器,消息隊列部署在隊列管理器中。信令采集系統(tǒng)采集的信令數(shù)據(jù)、以及BOSS系統(tǒng)產(chǎn)生的IT事件發(fā)送給精準(zhǔn)營銷系統(tǒng)的前置機(jī),前置機(jī)中的處理模塊對接收到的信令數(shù)據(jù)或者IT事件進(jìn)行過濾以及加工處理,得到業(yè)務(wù)事件;前置機(jī)中的分發(fā)模塊負(fù)責(zé)對處理模塊得到的業(yè)務(wù)事件進(jìn)行分發(fā),通過消息封裝將業(yè)務(wù)事件分發(fā)給隊列管理器中的消息隊列,應(yīng)用服務(wù)器中的業(yè)務(wù)服務(wù)再從對應(yīng)的消息隊列中提取業(yè)務(wù)事件進(jìn)行處理。業(yè)務(wù)服務(wù)是精準(zhǔn)營銷系統(tǒng)封裝具體業(yè)務(wù)事件處理邏輯的服務(wù),將被部署到一個或多個應(yīng)用服務(wù)器。在精準(zhǔn)營銷系統(tǒng)需要增加業(yè)務(wù)事件處理能力時,將啟動多個業(yè)務(wù)服務(wù)實例,充分利用應(yīng)用服務(wù)器的計算能力進(jìn)行分布式處理。與其他系統(tǒng)的業(yè)務(wù)服務(wù)有所不同,每個需要進(jìn)行彈性調(diào)度的業(yè)務(wù)服務(wù)都要向精準(zhǔn)營銷系統(tǒng)的平衡控制服務(wù)報告運行狀態(tài),接收啟動和停止命令。本發(fā)明實施例中,設(shè)計了服務(wù)管理器分離該部分功能,如圖3所示,由服務(wù)管理器負(fù)責(zé)與平衡控制服務(wù)交互,完成業(yè)務(wù)服務(wù)的注冊,以及啟動或停止業(yè)務(wù)服務(wù)。針對應(yīng)用服務(wù)器中某一特定的業(yè)務(wù)服務(wù),其注冊流程如圖4所示,包括如下步驟S401、服務(wù)管理器向平衡控制模塊發(fā)起業(yè)務(wù)服務(wù)的注冊請求,其中攜帶業(yè)務(wù)服務(wù)的標(biāo)識信息;S402、平衡控制模塊根據(jù)業(yè)務(wù)服務(wù)的注冊請求,通過服務(wù)管理器向業(yè)務(wù)服務(wù)發(fā)布包括消息隊列連接信息的配置消息,消息隊列連接信息包括所連接消息隊列的標(biāo)識信息、 所連接消息隊列所在隊列管理器的地址信息;S403、業(yè)務(wù)服務(wù)根據(jù)配置消息中的消息隊列連接信息連接到指定的消息隊列;后續(xù),該特定的業(yè)務(wù)服務(wù)即可從所連接的消息隊列中獲取需要處理的業(yè)務(wù)事件進(jìn)行業(yè)務(wù)處理。可見,分散部署到一定數(shù)量的應(yīng)用服務(wù)器上的業(yè)務(wù)服務(wù)可以作為集群,每個業(yè)務(wù)服務(wù)對應(yīng)唯一的消息隊列,每個消息隊列對應(yīng)一個或多個業(yè)務(wù)服務(wù)。 針對已注冊的業(yè)務(wù)服務(wù),平衡控制服務(wù)還可以針對某一特定的業(yè)務(wù)服務(wù)發(fā)布啟動和停止命令,服務(wù)管理器在接收到啟動或停止命令之后,啟動或停止相應(yīng)的業(yè)務(wù)服務(wù)。其中啟動業(yè)務(wù)服務(wù)服務(wù)管理器將業(yè)務(wù)服務(wù)作為普通線程啟動,同時發(fā)布狀態(tài)變更通知,向平衡控制服務(wù)報告該業(yè)務(wù)服務(wù)已變更為啟動狀態(tài);停止業(yè)務(wù)服務(wù)服務(wù)管理器調(diào)用外部程序?qū)I(yè)務(wù)服務(wù)從循環(huán)中正常退出,同時發(fā)布狀態(tài)變更通知,向平衡控制服務(wù)報告該業(yè)務(wù)服務(wù)已變更為停止?fàn)顟B(tài)?;谏鲜鼍珳?zhǔn)營銷系統(tǒng)的彈性計算結(jié)構(gòu),本發(fā)明實施例提供了一種消息隊列的負(fù)載均衡控制系統(tǒng),如圖5所示,包括監(jiān)控模塊51和控制子系統(tǒng)52,監(jiān)控模塊51連接到各消息隊列。其中監(jiān)控模塊51,用于輪詢每一個消息隊列的當(dāng)前深度,當(dāng)存在當(dāng)前深度達(dá)到預(yù)設(shè)的隊列深度告警閾值的過載消息隊列時,生成告警信息發(fā)送給平衡控制模塊,所述告警信息中包括各過載消息隊列的標(biāo)識信息及其當(dāng)前深度;為了便于區(qū)分,本發(fā)明實施例中將當(dāng)前深度達(dá)到預(yù)設(shè)的隊列深度告警閾值的消息隊列稱為“過載消息隊列”;控制子系統(tǒng)52,用于根據(jù)告警信息中各過載消息隊列的當(dāng)前深度、以及業(yè)務(wù)服務(wù)的平均處理能力,分別確定各過載消息隊列需要增加的業(yè)務(wù)服務(wù)數(shù)量;選取相應(yīng)數(shù)量且滿足配置條件的業(yè)務(wù)服務(wù),增加配置給告警信息中各過載消息隊列的標(biāo)識信息所指示的過載消息隊列。具體實施中,控制子系統(tǒng)52的一種可能實現(xiàn)方式,包括平衡控制模塊521和服務(wù)管理器522,其中平衡控制模塊521,用于查詢每一個應(yīng)用服務(wù)器的CPU利用率,確定CPU利用率低于設(shè)定的第一利用率閾值的空閑應(yīng)用服務(wù)器;平衡控制模塊向服務(wù)管理器發(fā)起啟動業(yè)務(wù)服務(wù)的控制命令,其中指示空閑應(yīng)用服務(wù)器并攜帶各過載消息隊列的標(biāo)識信息及其需要增加的業(yè)務(wù)服務(wù)數(shù)量;服務(wù)管理器522,用于根據(jù)啟動業(yè)務(wù)服務(wù)的控制命令,分別為每一個過載消息隊列啟動相應(yīng)數(shù)量、且部署在空閑應(yīng)用服務(wù)器中的業(yè)務(wù)服務(wù)。較佳的,平衡控制模塊521,還用于當(dāng)某個過載消息隊列的當(dāng)前深度恢復(fù)到其隊列深度告警閾值之下時,查詢每一個應(yīng)用服務(wù)器的CPU利用率;如果存在CPU利用率高于設(shè)定的第二利用率閾值的繁忙應(yīng)用服務(wù)器,向服務(wù)管理器發(fā)起停止業(yè)務(wù)服務(wù)的控制命令,其中指示繁忙應(yīng)用服務(wù)器并攜帶該過載消息隊列的標(biāo)識信息,所述第二利用率閾值高于第一利用率閾值;服務(wù)管理器522,還用于根據(jù)停止業(yè)務(wù)服務(wù)的控制命令,停止為該過載消息隊列配置的、且部署在繁忙應(yīng)用服務(wù)器中的業(yè)務(wù)服務(wù)。監(jiān)控模塊生成的告警信息中除了包括各過載消息隊列的標(biāo)識信息及其當(dāng)前深度之外,還可以包括其它消息隊列的標(biāo)識信息及其當(dāng)前深度;在這種情況下,控制子系統(tǒng)的另一種可能實現(xiàn)方式,包括平衡控制模塊521和服務(wù)管理器522,其中平衡控制模塊521,用于為每一個過載消息隊列增加配置相應(yīng)數(shù)量、且當(dāng)前深度低于設(shè)定的隊列深度調(diào)度閾值的消息隊列所對應(yīng)的業(yè)務(wù)服務(wù),所述隊列深度調(diào)度閾值低于隊列深度告警閾值;通過管理服務(wù)器522向所述業(yè)務(wù)服務(wù)發(fā)布包括消息隊列連接信息的配置更新消息,消息隊列連接信息用于指示業(yè)務(wù)服務(wù)連接到指定的過載消息隊列?;谕患夹g(shù)構(gòu)思,本發(fā)明實施例提供了一種消息隊列的負(fù)載均衡控制方法,通過消息隊列的當(dāng)前深度體現(xiàn)數(shù)據(jù)處理壓力,因此需要預(yù)先為每一個消息隊列設(shè)置隊列深度告警閾值,為各消息隊列設(shè)置的隊列深度告警閾值可以相同,也可以不相同,可以根據(jù)實際需求靈活設(shè)置。如圖6所示,本發(fā)明實施例提供的消息隊列的負(fù)載均衡控制方法,包括如下步驟S601、輪詢每一個消息隊列的當(dāng)前深度,當(dāng)存在當(dāng)前深度達(dá)到預(yù)設(shè)的隊列深度告警閾值的過載消息隊列時,生成告警信息,所述告警信息中包括各過載消息隊列的標(biāo)識信息及其當(dāng)前深度;具體實施中,可以按照固定時間間隔(該固定時間間隔可以稱為監(jiān)控周期)輪詢每一個消息隊列的當(dāng)前深度;也可以在滿足設(shè)定的觸發(fā)條件時,例如用戶觸發(fā)隊列深度的查詢,輪詢每一個消息隊列的當(dāng)前深度。S602、根據(jù)告警信息中各過載消息隊列的當(dāng)前深度、以及業(yè)務(wù)服務(wù)的平均處理能力,分別確定各過載消息隊列需要增加的業(yè)務(wù)服務(wù)數(shù)量;具體實施中,業(yè)務(wù)服務(wù)的平均處理能力可以通過如下方式確定并預(yù)先配置對提供業(yè)務(wù)服務(wù)的應(yīng)用服務(wù)器進(jìn)行POCO^oof of Conc印t)基準(zhǔn)測試,得出典型業(yè)務(wù)場景下,應(yīng)用服務(wù)器的POC基準(zhǔn)值和業(yè)務(wù)服務(wù)最大數(shù)量,POC基準(zhǔn)值是指應(yīng)用服務(wù)器處理消息的性能值,單位一般為條數(shù)/分;業(yè)務(wù)服務(wù)最大數(shù)量是指最佳性能下應(yīng)用服務(wù)器能夠部署的業(yè)務(wù)服務(wù)的最大數(shù)量;需要說明的是,具體實施中,提供業(yè)務(wù)服務(wù)的各應(yīng)用服務(wù)器性能基本一致?;赑OC基準(zhǔn)測試,可以得到業(yè)務(wù)服務(wù)的平均處理能力,具體計算方法如公式[1]所示業(yè)務(wù)服務(wù)的平均處理能力=POC基準(zhǔn)值/業(yè)務(wù)服務(wù)最大數(shù)量 [1]根據(jù)業(yè)務(wù)服務(wù)的平均處理能力,以及過載消息隊列的當(dāng)前深度(一般采用消息的條數(shù)表示),可以得到每一個過載消息隊列需要增加的業(yè)務(wù)服務(wù)數(shù)量,假設(shè)過載消息隊列的數(shù)量為N,則第i (1 < i < N)個過載消息隊列需要增加的業(yè)務(wù)服務(wù)數(shù)量,具體計算方法如公式[2]所示需要增加的業(yè)務(wù)服務(wù)數(shù)量=PiZt [2]其中,Pi表示第i (1彡i彡N)個過載消息隊列的當(dāng)前深度,T表示業(yè)務(wù)服務(wù)的平均處理能力。S603、選取相應(yīng)數(shù)量且滿足配置條件的業(yè)務(wù)服務(wù),增加配置給告警信息中各過載消息隊列的標(biāo)識信息所指示的過載消息隊列。以下通過具體實施方式
詳細(xì)說明消息隊列的負(fù)載均衡控制方案。為了達(dá)到控制消息隊列負(fù)載均衡的目的,可以由服務(wù)管理器接收平衡控制模塊發(fā)起的啟動業(yè)務(wù)服務(wù)的控制命令,從而確保精準(zhǔn)營銷系統(tǒng)在面對大數(shù)據(jù)量、以及非均衡的實時數(shù)據(jù)時,能夠保持高實時性和高可靠性,假設(shè)監(jiān)控模塊按固定時間間隔輪詢每一個消息隊列的當(dāng)前深度。如圖7所示,包括如下步驟S701、在當(dāng)前的監(jiān)控周期到達(dá)時,監(jiān)控模塊輪詢每一個消息隊列的當(dāng)前深度,并更新監(jiān)控模塊中存儲的消息隊列的當(dāng)前深度;S702、如果監(jiān)控模塊監(jiān)控到某一個或多個消息隊列的當(dāng)前深度達(dá)到預(yù)設(shè)的隊列深度告警閾值,該一個或多個消息隊列稱為過載消息隊列,則執(zhí)行S703 ;如果監(jiān)控模塊沒有監(jiān)控到當(dāng)前深度達(dá)到設(shè)定的隊列深度告警閾值的消息隊列,則不執(zhí)行任何處理,等待下一監(jiān)控周期的到來;S703、監(jiān)控模塊生成告警信息發(fā)送給平衡控制模塊,告警信息中需要包括各過載消息隊列的標(biāo)識信息及其當(dāng)前深度;舉例進(jìn)行說明表 權(quán)利要求
1.一種消息隊列的負(fù)載均衡控制方法,其特征在于,包括輪詢每一個消息隊列的當(dāng)前深度,當(dāng)存在當(dāng)前深度達(dá)到預(yù)設(shè)的隊列深度告警閾值的過載消息隊列時,生成告警信息,所述告警信息中包括各過載消息隊列的標(biāo)識信息及其當(dāng)前深度;根據(jù)告警信息中各過載消息隊列的當(dāng)前深度、以及業(yè)務(wù)服務(wù)的平均處理能力,分別確定各過載消息隊列需要增加的業(yè)務(wù)服務(wù)數(shù)量;選取相應(yīng)數(shù)量且滿足配置條件的業(yè)務(wù)服務(wù),增加配置給告警信息中各過載消息隊列的標(biāo)識信息所指示的過載消息隊列。
2.如權(quán)利要求1所述的方法,其特征在于,所述選取相應(yīng)數(shù)量且滿足配置條件的業(yè)務(wù)服務(wù),增加配置給告警信息中各過載消息隊列的標(biāo)識信息所指示的過載消息隊列,具體包括查詢每一個應(yīng)用服務(wù)器的CPU利用率,確定CPU利用率低于設(shè)定的第一利用率閾值的空閑應(yīng)用服務(wù)器,所述應(yīng)用服務(wù)器中部署業(yè)務(wù)服務(wù);為每一個過載消息隊列啟動相應(yīng)數(shù)量、且部署在空閑應(yīng)用服務(wù)器中的業(yè)務(wù)服務(wù)。
3.如權(quán)利要求2所述的方法,其特征在于,還包括當(dāng)某個過載消息隊列的當(dāng)前深度恢復(fù)到其隊列深度告警閾值之下時,查詢每一個應(yīng)用服務(wù)器的CPU利用率;如果存在CPU利用率高于設(shè)定的第二利用率閾值的繁忙應(yīng)用服務(wù)器,則停止為該過載消息隊列配置的、且部署在繁忙應(yīng)用服務(wù)器中的業(yè)務(wù)服務(wù),所述第二利用率閾值高于第一利用率閾值。
4.如權(quán)利要求1所述的方法,其特征在于,所述告警信息中還包括其它消息隊列的標(biāo)識信息及其當(dāng)前深度;以及所述選取相應(yīng)數(shù)量且滿足配置條件的業(yè)務(wù)服務(wù),增加配置給告警信息中各過載消息隊列的標(biāo)識信息所指示的過載消息隊列,具體包括為每一個過載消息隊列增加配置相應(yīng)數(shù)量、且當(dāng)前深度低于設(shè)定的隊列深度調(diào)度閾值的消息隊列所對應(yīng)的業(yè)務(wù)服務(wù),所述隊列深度調(diào)度閾值低于隊列深度告警閾值; 向所述業(yè)務(wù)服務(wù)發(fā)布包括消息隊列連接信息的配置更新消息;以及所述業(yè)務(wù)服務(wù)根據(jù)配置更新消息中的消息隊列連接信息連接到指定的過載消息隊列。
5.如權(quán)利要求1所述的方法,其特征在于,過載消息隊列需要增加的業(yè)務(wù)服務(wù)數(shù)量為該過載消息隊列的當(dāng)前深度與業(yè)務(wù)服務(wù)的平均處理能力之商。
6.如權(quán)利要求1所述的方法,其特征在于,按照固定的時間間隔輪詢每一個消息隊列的當(dāng)前深度。
7.一種消息隊列的負(fù)載均衡控制系統(tǒng),其特征在于,包括監(jiān)控模塊,用于輪詢每一個消息隊列的當(dāng)前深度,當(dāng)存在當(dāng)前深度達(dá)到預(yù)設(shè)的隊列深度告警閾值的過載消息隊列時,生成告警信息發(fā)送給平衡控制模塊,所述告警信息中包括各過載消息隊列的標(biāo)識信息及其當(dāng)前深度;控制子系統(tǒng),用于根據(jù)告警信息中各過載消息隊列的當(dāng)前深度、以及業(yè)務(wù)服務(wù)的平均處理能力,分別確定各過載消息隊列需要增加的業(yè)務(wù)服務(wù)數(shù)量;選取相應(yīng)數(shù)量且滿足配置條件的業(yè)務(wù)服務(wù),增加配置給告警信息中各過載消息隊列的標(biāo)識信息所指示的過載消息隊列。
8.如權(quán)利要求7所述的系統(tǒng),其特征在于,所述控制子系統(tǒng)包括平衡控制模塊和服務(wù)管理器,其中所述平衡控制模塊,用于查詢每一個應(yīng)用服務(wù)器的CPU利用率,確定CPU利用率低于設(shè)定的第一利用率閾值的空閑應(yīng)用服務(wù)器,所述應(yīng)用服務(wù)器中部署業(yè)務(wù)服務(wù);向所述服務(wù)管理器發(fā)起啟動業(yè)務(wù)服務(wù)的控制命令,其中指示空閑應(yīng)用服務(wù)器并攜帶各過載消息隊列的標(biāo)識信息及其需要增加的業(yè)務(wù)服務(wù)數(shù)量;所述服務(wù)管理器,用于根據(jù)啟動業(yè)務(wù)服務(wù)的控制命令,分別為每一個過載消息隊列啟動相應(yīng)數(shù)量、且部署在空閑應(yīng)用服務(wù)器中的業(yè)務(wù)服務(wù)。
9.如權(quán)利要求8所述的系統(tǒng),其特征在于,所述平衡控制模塊,還用于當(dāng)某個過載消息隊列的當(dāng)前深度恢復(fù)到其隊列深度告警閾值之下時,查詢每一個應(yīng)用服務(wù)器的CPU利用率;如果存在CPU利用率高于設(shè)定的第二利用率閾值的繁忙應(yīng)用服務(wù)器,向服務(wù)管理器發(fā)起停止業(yè)務(wù)服務(wù)的控制命令,其中指示繁忙應(yīng)用服務(wù)器并攜帶該過載消息隊列的標(biāo)識信息,所述第二利用率閾值高于第一利用率閾值;服務(wù)管理器,還用于根據(jù)停止業(yè)務(wù)服務(wù)的控制命令,停止為該過載消息隊列配置的、且部署在繁忙應(yīng)用服務(wù)器中的業(yè)務(wù)服務(wù)。
10.如權(quán)利要求7所述的系統(tǒng),其特征在于,所述監(jiān)控模塊生成的告警信息中還包括其它消息隊列的標(biāo)識信息及其當(dāng)前深度;以及所述控制子系統(tǒng)包括平衡控制模塊和服務(wù)管理器,其中平衡控制模塊,用于為每一個過載消息隊列增加配置相應(yīng)數(shù)量、且當(dāng)前深度低于設(shè)定的隊列深度調(diào)度閾值的消息隊列所對應(yīng)的業(yè)務(wù)服務(wù),所述隊列深度調(diào)度閾值低于隊列深度告警閾值;通過所述管理服務(wù)器向所述業(yè)務(wù)服務(wù)發(fā)布包括消息隊列連接信息的配置更新消息,消息隊列連接信息用于指示業(yè)務(wù)服務(wù)連接到指定的過載消息隊列。
全文摘要
本發(fā)明公開了一種消息隊列的負(fù)載均衡控制方法及系統(tǒng),用以提升控制消息隊列負(fù)載均衡的靈活性,并實現(xiàn)客戶端對消息隊列的靈活切換。消息隊列的負(fù)載均衡控制方法,包括輪詢每一個消息隊列的當(dāng)前深度,當(dāng)存在當(dāng)前深度達(dá)到預(yù)設(shè)的隊列深度告警閾值的過載消息隊列時,生成告警信息,所述告警信息中包括各過載消息隊列的標(biāo)識信息及其當(dāng)前深度;根據(jù)告警信息中各過載消息隊列的當(dāng)前深度、以及業(yè)務(wù)服務(wù)的平均處理能力,分別確定各過載消息隊列需要增加的業(yè)務(wù)服務(wù)數(shù)量;選取相應(yīng)數(shù)量且滿足配置條件的業(yè)務(wù)服務(wù),增加配置給告警信息中各過載消息隊列的標(biāo)識信息所指示的過載消息隊列。
文檔編號H04W28/08GK102457906SQ20101052339
公開日2012年5月16日 申請日期2010年10月26日 優(yōu)先權(quán)日2010年10月26日
發(fā)明者崔洪濤, 盛強(qiáng), 邵杰, 郭強(qiáng) 申請人:中國移動通信集團(tuán)河南有限公司