两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種消息隊列的負載均衡控制方法及系統(tǒng)的制作方法

文檔序號:7763442閱讀:593來源:國知局
專利名稱:一種消息隊列的負載均衡控制方法及系統(tǒng)的制作方法
技術領域
本發(fā)明涉及移動通信技術領域,尤其涉及一種消息隊列的負載均衡控制方法及系統(tǒng)。
背景技術
現有移動通信技術領域中,精準營銷系統(tǒng)的主要功能是處理信令采集系統(tǒng)、 BOSS (Business Operation Support System,業(yè)務運營支撐)系統(tǒng)等外部系統(tǒng)產生的大量實時數據,過濾并加工處理產生業(yè)務事件,經過應用服務器對業(yè)務事件的處理,最終通過適當渠道對用戶進行營銷。信令采集系統(tǒng)采集大量的信令數據,例如主被叫、短信收發(fā)、位置遷移、小區(qū)切換、 開關機等,并通過Socket接口發(fā)送給精準營銷系統(tǒng)的前置機,峰值速率達到1500000條/ 秒;BOSS系統(tǒng)也產生大量的IT事件發(fā)送給精準營銷系統(tǒng)的前置機。信令采集系統(tǒng)、BOSS 系統(tǒng)等外部系統(tǒng)產生的大量實時數據又是非均衡的,例如信令數據中的主被叫、短信收發(fā)在每天的各時間段內表現出非均衡性。針對精準營銷系統(tǒng)中大數據量、以及非均衡的實時數據,為了達到高實時性和高可靠性的要求,精準營銷系統(tǒng)需要設計為彈性計算結構,分擔大數據量、以及非均衡的數據處理,抵擋峰值壓力,從而保證精準營銷系統(tǒng)的實時性和可靠性。其中,精準營銷系統(tǒng)中通過消息封裝將業(yè)務事件分發(fā)給消息隊列,因此需要實現消息隊列的負載均衡?,F有技術中,消息隊列的負載均衡方案,如圖1所示多個消息隊列組成消息隊列集群,消息首先發(fā)送到主隊列,再由主隊列進行消息的分發(fā),負載均衡策略由主隊列控制;客戶端從消息隊列集群中固定的消息隊列中提取消息進行業(yè)務處理?,F有技術中,消息隊列的負載均衡方案存在如下問題1、多個消息隊列組成消息隊列集群,消息首先發(fā)送到主隊列,再由主隊列進行消息的分發(fā),負載均衡策略由主隊列控制,無法靈活地調整負載均衡策略;2、客戶端從消息隊列集群中固定的消息隊列中提取消息進行業(yè)務處理,客戶端無法透明地切換消息隊列。因此,如何提升控制消息隊列負載均衡的靈活性,以及實現客戶端對消息隊列的靈活切換,成為現有技術中亟待解決的技術問題。

發(fā)明內容
本發(fā)明實施例提供一種消息隊列的負載均衡控制方法及系統(tǒng),用以提升控制消息隊列負載均衡的靈活性,并實現客戶端對消息隊列的靈活切換。本發(fā)明實施例提供的消息隊列的負載均衡控制方法,包括輪詢每一個消息隊列的當前深度,當存在當前深度達到預設的隊列深度告警閾值的過載消息隊列時,生成告警信息,所述告警信息中包括各過載消息隊列的標識信息及其當前深度;根據告警信息中各過載消息隊列的當前深度、以及業(yè)務服務的平均處理能力,分別確定各過載消息隊列需要增加的業(yè)務服務數量;選取相應數量且滿足配置條件的業(yè)務服務,增加配置給告警信息中各過載消息隊列的標識信息所指示的過載消息隊列。本發(fā)明實施例提供的消息隊列的負載均衡控制系統(tǒng),包括監(jiān)控模塊,用于輪詢每一個消息隊列的當前深度,當存在當前深度達到預設的隊列深度告警閾值的過載消息隊列時,生成告警信息發(fā)送給平衡控制模塊,所述告警信息中包括各過載消息隊列的標識信息及其當前深度;控制子系統(tǒng),用于根據告警信息中各過載消息隊列的當前深度、以及業(yè)務服務的平均處理能力,分別確定各過載消息隊列需要增加的業(yè)務服務數量;選取相應數量且滿足配置條件的業(yè)務服務,增加配置給告警信息中各過載消息隊列的標識信息所指示的過載消息隊列。本發(fā)明實施例提供的消息隊列的負載均衡控制方法及系統(tǒng),摒棄了由主隊列控制負載均衡的模式,通過輪詢每一個消息隊列的當前深度,當某一個或多個消息隊列的隊列深度達到設定的隊列深度告警閾值時,確定各過載消息隊列需要增加的業(yè)務服務數量,并將滿足配置條件的業(yè)務服務增加配置給各過載消息隊列,從而達到了控制消息隊列負載均衡的目的,提升了靈活性;業(yè)務服務不再從固定的消息隊列中提取消息進行業(yè)務處理,而是可以根據實際情況靈活為消息隊列配置業(yè)務服務,實現了客戶端對消息隊列的靈活切換。本發(fā)明的其它特征和優(yōu)點將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點可通過在所寫的說明書、權利要求書、以及附圖中所特別指出的結構來實現和獲得。


圖1為現有技術中消息隊列的負載均衡方案示意圖;圖2為本發(fā)明實施例中精準營銷系統(tǒng)的架構示意圖;圖3為本發(fā)明實施例中服務管理器管理業(yè)務服務的示意圖;圖4為本發(fā)明實施例中業(yè)務服務的注冊流程圖;圖5為本發(fā)明實施例中消息隊列的負載均衡控制系統(tǒng)框圖;圖6為本發(fā)明實施例中消息隊列的負載均衡控制方法流程圖;圖7為本發(fā)明實施例中第一種消息隊列的負載均衡控制流程圖;圖8為本發(fā)明實施例中第二種消息隊列的負載均衡控制流程圖。
具體實施例方式本發(fā)明實施例提供一種消息隊列的負載均衡控制方法及系統(tǒng),用以提升控制消息隊列負載均衡的靈活性,并實現客戶端對消息隊列的靈活切換。以下結合說明書附圖對本發(fā)明的優(yōu)選實施例進行說明,應當理解,此處所描述的優(yōu)選實施例僅用于說明和解釋本發(fā)明,并不用于限定本發(fā)明,并且在不沖突的情況下,本發(fā)明中的實施例及實施例中的特征可以相互組合。
首先,對本發(fā)明實施例提供的消息隊列的負載均衡控制方案的典型應用場景一一采用彈性計算結構的精準營銷系統(tǒng)進行說明。精準營銷系統(tǒng)的彈性計算結構建立在采用基于消息中間件的SOA(Service-Oriented Architecture,面向服務架構)之上。SOA是一種架構模型,可以根據需求通過網絡對松散耦合的粗粒度應用組件進行分布式部署、組合和使用;服務層是SOA的基礎,可以直接被應用調用,從而有效控制系統(tǒng)中與軟件代理交互的人為依賴性。精準營銷系統(tǒng)的架構,如圖2所示精準營銷系統(tǒng)中,各模塊通過消息封裝掛接到消息中間件,對外提供服務或向外請求服務。彈性計算的三類主要部件監(jiān)控服務、平衡控制服務和業(yè)務服務均是以SOA為基礎的,在精準營銷系統(tǒng)中都以基于消息的服務形式封裝和部署。其中,部署了監(jiān)控服務的功能實體稱為監(jiān)控模塊,部署了平衡控制服務的功能實體稱為平衡控制模塊,部署了業(yè)務服務的功能實體稱為應用服務器,消息隊列部署在隊列管理器中。信令采集系統(tǒng)采集的信令數據、以及BOSS系統(tǒng)產生的IT事件發(fā)送給精準營銷系統(tǒng)的前置機,前置機中的處理模塊對接收到的信令數據或者IT事件進行過濾以及加工處理,得到業(yè)務事件;前置機中的分發(fā)模塊負責對處理模塊得到的業(yè)務事件進行分發(fā),通過消息封裝將業(yè)務事件分發(fā)給隊列管理器中的消息隊列,應用服務器中的業(yè)務服務再從對應的消息隊列中提取業(yè)務事件進行處理。業(yè)務服務是精準營銷系統(tǒng)封裝具體業(yè)務事件處理邏輯的服務,將被部署到一個或多個應用服務器。在精準營銷系統(tǒng)需要增加業(yè)務事件處理能力時,將啟動多個業(yè)務服務實例,充分利用應用服務器的計算能力進行分布式處理。與其他系統(tǒng)的業(yè)務服務有所不同,每個需要進行彈性調度的業(yè)務服務都要向精準營銷系統(tǒng)的平衡控制服務報告運行狀態(tài),接收啟動和停止命令。本發(fā)明實施例中,設計了服務管理器分離該部分功能,如圖3所示,由服務管理器負責與平衡控制服務交互,完成業(yè)務服務的注冊,以及啟動或停止業(yè)務服務。針對應用服務器中某一特定的業(yè)務服務,其注冊流程如圖4所示,包括如下步驟S401、服務管理器向平衡控制模塊發(fā)起業(yè)務服務的注冊請求,其中攜帶業(yè)務服務的標識信息;S402、平衡控制模塊根據業(yè)務服務的注冊請求,通過服務管理器向業(yè)務服務發(fā)布包括消息隊列連接信息的配置消息,消息隊列連接信息包括所連接消息隊列的標識信息、 所連接消息隊列所在隊列管理器的地址信息;S403、業(yè)務服務根據配置消息中的消息隊列連接信息連接到指定的消息隊列;后續(xù),該特定的業(yè)務服務即可從所連接的消息隊列中獲取需要處理的業(yè)務事件進行業(yè)務處理。可見,分散部署到一定數量的應用服務器上的業(yè)務服務可以作為集群,每個業(yè)務服務對應唯一的消息隊列,每個消息隊列對應一個或多個業(yè)務服務。 針對已注冊的業(yè)務服務,平衡控制服務還可以針對某一特定的業(yè)務服務發(fā)布啟動和停止命令,服務管理器在接收到啟動或停止命令之后,啟動或停止相應的業(yè)務服務。其中啟動業(yè)務服務服務管理器將業(yè)務服務作為普通線程啟動,同時發(fā)布狀態(tài)變更通知,向平衡控制服務報告該業(yè)務服務已變更為啟動狀態(tài);停止業(yè)務服務服務管理器調用外部程序將業(yè)務服務從循環(huán)中正常退出,同時發(fā)布狀態(tài)變更通知,向平衡控制服務報告該業(yè)務服務已變更為停止狀態(tài)?;谏鲜鼍珳薁I銷系統(tǒng)的彈性計算結構,本發(fā)明實施例提供了一種消息隊列的負載均衡控制系統(tǒng),如圖5所示,包括監(jiān)控模塊51和控制子系統(tǒng)52,監(jiān)控模塊51連接到各消息隊列。其中監(jiān)控模塊51,用于輪詢每一個消息隊列的當前深度,當存在當前深度達到預設的隊列深度告警閾值的過載消息隊列時,生成告警信息發(fā)送給平衡控制模塊,所述告警信息中包括各過載消息隊列的標識信息及其當前深度;為了便于區(qū)分,本發(fā)明實施例中將當前深度達到預設的隊列深度告警閾值的消息隊列稱為“過載消息隊列”;控制子系統(tǒng)52,用于根據告警信息中各過載消息隊列的當前深度、以及業(yè)務服務的平均處理能力,分別確定各過載消息隊列需要增加的業(yè)務服務數量;選取相應數量且滿足配置條件的業(yè)務服務,增加配置給告警信息中各過載消息隊列的標識信息所指示的過載消息隊列。具體實施中,控制子系統(tǒng)52的一種可能實現方式,包括平衡控制模塊521和服務管理器522,其中平衡控制模塊521,用于查詢每一個應用服務器的CPU利用率,確定CPU利用率低于設定的第一利用率閾值的空閑應用服務器;平衡控制模塊向服務管理器發(fā)起啟動業(yè)務服務的控制命令,其中指示空閑應用服務器并攜帶各過載消息隊列的標識信息及其需要增加的業(yè)務服務數量;服務管理器522,用于根據啟動業(yè)務服務的控制命令,分別為每一個過載消息隊列啟動相應數量、且部署在空閑應用服務器中的業(yè)務服務。較佳的,平衡控制模塊521,還用于當某個過載消息隊列的當前深度恢復到其隊列深度告警閾值之下時,查詢每一個應用服務器的CPU利用率;如果存在CPU利用率高于設定的第二利用率閾值的繁忙應用服務器,向服務管理器發(fā)起停止業(yè)務服務的控制命令,其中指示繁忙應用服務器并攜帶該過載消息隊列的標識信息,所述第二利用率閾值高于第一利用率閾值;服務管理器522,還用于根據停止業(yè)務服務的控制命令,停止為該過載消息隊列配置的、且部署在繁忙應用服務器中的業(yè)務服務。監(jiān)控模塊生成的告警信息中除了包括各過載消息隊列的標識信息及其當前深度之外,還可以包括其它消息隊列的標識信息及其當前深度;在這種情況下,控制子系統(tǒng)的另一種可能實現方式,包括平衡控制模塊521和服務管理器522,其中平衡控制模塊521,用于為每一個過載消息隊列增加配置相應數量、且當前深度低于設定的隊列深度調度閾值的消息隊列所對應的業(yè)務服務,所述隊列深度調度閾值低于隊列深度告警閾值;通過管理服務器522向所述業(yè)務服務發(fā)布包括消息隊列連接信息的配置更新消息,消息隊列連接信息用于指示業(yè)務服務連接到指定的過載消息隊列?;谕患夹g構思,本發(fā)明實施例提供了一種消息隊列的負載均衡控制方法,通過消息隊列的當前深度體現數據處理壓力,因此需要預先為每一個消息隊列設置隊列深度告警閾值,為各消息隊列設置的隊列深度告警閾值可以相同,也可以不相同,可以根據實際需求靈活設置。如圖6所示,本發(fā)明實施例提供的消息隊列的負載均衡控制方法,包括如下步驟S601、輪詢每一個消息隊列的當前深度,當存在當前深度達到預設的隊列深度告警閾值的過載消息隊列時,生成告警信息,所述告警信息中包括各過載消息隊列的標識信息及其當前深度;具體實施中,可以按照固定時間間隔(該固定時間間隔可以稱為監(jiān)控周期)輪詢每一個消息隊列的當前深度;也可以在滿足設定的觸發(fā)條件時,例如用戶觸發(fā)隊列深度的查詢,輪詢每一個消息隊列的當前深度。S602、根據告警信息中各過載消息隊列的當前深度、以及業(yè)務服務的平均處理能力,分別確定各過載消息隊列需要增加的業(yè)務服務數量;具體實施中,業(yè)務服務的平均處理能力可以通過如下方式確定并預先配置對提供業(yè)務服務的應用服務器進行POCO^oof of Conc印t)基準測試,得出典型業(yè)務場景下,應用服務器的POC基準值和業(yè)務服務最大數量,POC基準值是指應用服務器處理消息的性能值,單位一般為條數/分;業(yè)務服務最大數量是指最佳性能下應用服務器能夠部署的業(yè)務服務的最大數量;需要說明的是,具體實施中,提供業(yè)務服務的各應用服務器性能基本一致。基于POC基準測試,可以得到業(yè)務服務的平均處理能力,具體計算方法如公式[1]所示業(yè)務服務的平均處理能力=POC基準值/業(yè)務服務最大數量 [1]根據業(yè)務服務的平均處理能力,以及過載消息隊列的當前深度(一般采用消息的條數表示),可以得到每一個過載消息隊列需要增加的業(yè)務服務數量,假設過載消息隊列的數量為N,則第i (1 < i < N)個過載消息隊列需要增加的業(yè)務服務數量,具體計算方法如公式[2]所示需要增加的業(yè)務服務數量=PiZt [2]其中,Pi表示第i (1彡i彡N)個過載消息隊列的當前深度,T表示業(yè)務服務的平均處理能力。S603、選取相應數量且滿足配置條件的業(yè)務服務,增加配置給告警信息中各過載消息隊列的標識信息所指示的過載消息隊列。以下通過具體實施方式
詳細說明消息隊列的負載均衡控制方案。為了達到控制消息隊列負載均衡的目的,可以由服務管理器接收平衡控制模塊發(fā)起的啟動業(yè)務服務的控制命令,從而確保精準營銷系統(tǒng)在面對大數據量、以及非均衡的實時數據時,能夠保持高實時性和高可靠性,假設監(jiān)控模塊按固定時間間隔輪詢每一個消息隊列的當前深度。如圖7所示,包括如下步驟S701、在當前的監(jiān)控周期到達時,監(jiān)控模塊輪詢每一個消息隊列的當前深度,并更新監(jiān)控模塊中存儲的消息隊列的當前深度;S702、如果監(jiān)控模塊監(jiān)控到某一個或多個消息隊列的當前深度達到預設的隊列深度告警閾值,該一個或多個消息隊列稱為過載消息隊列,則執(zhí)行S703 ;如果監(jiān)控模塊沒有監(jiān)控到當前深度達到設定的隊列深度告警閾值的消息隊列,則不執(zhí)行任何處理,等待下一監(jiān)控周期的到來;S703、監(jiān)控模塊生成告警信息發(fā)送給平衡控制模塊,告警信息中需要包括各過載消息隊列的標識信息及其當前深度;舉例進行說明表 權利要求
1.一種消息隊列的負載均衡控制方法,其特征在于,包括輪詢每一個消息隊列的當前深度,當存在當前深度達到預設的隊列深度告警閾值的過載消息隊列時,生成告警信息,所述告警信息中包括各過載消息隊列的標識信息及其當前深度;根據告警信息中各過載消息隊列的當前深度、以及業(yè)務服務的平均處理能力,分別確定各過載消息隊列需要增加的業(yè)務服務數量;選取相應數量且滿足配置條件的業(yè)務服務,增加配置給告警信息中各過載消息隊列的標識信息所指示的過載消息隊列。
2.如權利要求1所述的方法,其特征在于,所述選取相應數量且滿足配置條件的業(yè)務服務,增加配置給告警信息中各過載消息隊列的標識信息所指示的過載消息隊列,具體包括查詢每一個應用服務器的CPU利用率,確定CPU利用率低于設定的第一利用率閾值的空閑應用服務器,所述應用服務器中部署業(yè)務服務;為每一個過載消息隊列啟動相應數量、且部署在空閑應用服務器中的業(yè)務服務。
3.如權利要求2所述的方法,其特征在于,還包括當某個過載消息隊列的當前深度恢復到其隊列深度告警閾值之下時,查詢每一個應用服務器的CPU利用率;如果存在CPU利用率高于設定的第二利用率閾值的繁忙應用服務器,則停止為該過載消息隊列配置的、且部署在繁忙應用服務器中的業(yè)務服務,所述第二利用率閾值高于第一利用率閾值。
4.如權利要求1所述的方法,其特征在于,所述告警信息中還包括其它消息隊列的標識信息及其當前深度;以及所述選取相應數量且滿足配置條件的業(yè)務服務,增加配置給告警信息中各過載消息隊列的標識信息所指示的過載消息隊列,具體包括為每一個過載消息隊列增加配置相應數量、且當前深度低于設定的隊列深度調度閾值的消息隊列所對應的業(yè)務服務,所述隊列深度調度閾值低于隊列深度告警閾值; 向所述業(yè)務服務發(fā)布包括消息隊列連接信息的配置更新消息;以及所述業(yè)務服務根據配置更新消息中的消息隊列連接信息連接到指定的過載消息隊列。
5.如權利要求1所述的方法,其特征在于,過載消息隊列需要增加的業(yè)務服務數量為該過載消息隊列的當前深度與業(yè)務服務的平均處理能力之商。
6.如權利要求1所述的方法,其特征在于,按照固定的時間間隔輪詢每一個消息隊列的當前深度。
7.一種消息隊列的負載均衡控制系統(tǒng),其特征在于,包括監(jiān)控模塊,用于輪詢每一個消息隊列的當前深度,當存在當前深度達到預設的隊列深度告警閾值的過載消息隊列時,生成告警信息發(fā)送給平衡控制模塊,所述告警信息中包括各過載消息隊列的標識信息及其當前深度;控制子系統(tǒng),用于根據告警信息中各過載消息隊列的當前深度、以及業(yè)務服務的平均處理能力,分別確定各過載消息隊列需要增加的業(yè)務服務數量;選取相應數量且滿足配置條件的業(yè)務服務,增加配置給告警信息中各過載消息隊列的標識信息所指示的過載消息隊列。
8.如權利要求7所述的系統(tǒng),其特征在于,所述控制子系統(tǒng)包括平衡控制模塊和服務管理器,其中所述平衡控制模塊,用于查詢每一個應用服務器的CPU利用率,確定CPU利用率低于設定的第一利用率閾值的空閑應用服務器,所述應用服務器中部署業(yè)務服務;向所述服務管理器發(fā)起啟動業(yè)務服務的控制命令,其中指示空閑應用服務器并攜帶各過載消息隊列的標識信息及其需要增加的業(yè)務服務數量;所述服務管理器,用于根據啟動業(yè)務服務的控制命令,分別為每一個過載消息隊列啟動相應數量、且部署在空閑應用服務器中的業(yè)務服務。
9.如權利要求8所述的系統(tǒng),其特征在于,所述平衡控制模塊,還用于當某個過載消息隊列的當前深度恢復到其隊列深度告警閾值之下時,查詢每一個應用服務器的CPU利用率;如果存在CPU利用率高于設定的第二利用率閾值的繁忙應用服務器,向服務管理器發(fā)起停止業(yè)務服務的控制命令,其中指示繁忙應用服務器并攜帶該過載消息隊列的標識信息,所述第二利用率閾值高于第一利用率閾值;服務管理器,還用于根據停止業(yè)務服務的控制命令,停止為該過載消息隊列配置的、且部署在繁忙應用服務器中的業(yè)務服務。
10.如權利要求7所述的系統(tǒng),其特征在于,所述監(jiān)控模塊生成的告警信息中還包括其它消息隊列的標識信息及其當前深度;以及所述控制子系統(tǒng)包括平衡控制模塊和服務管理器,其中平衡控制模塊,用于為每一個過載消息隊列增加配置相應數量、且當前深度低于設定的隊列深度調度閾值的消息隊列所對應的業(yè)務服務,所述隊列深度調度閾值低于隊列深度告警閾值;通過所述管理服務器向所述業(yè)務服務發(fā)布包括消息隊列連接信息的配置更新消息,消息隊列連接信息用于指示業(yè)務服務連接到指定的過載消息隊列。
全文摘要
本發(fā)明公開了一種消息隊列的負載均衡控制方法及系統(tǒng),用以提升控制消息隊列負載均衡的靈活性,并實現客戶端對消息隊列的靈活切換。消息隊列的負載均衡控制方法,包括輪詢每一個消息隊列的當前深度,當存在當前深度達到預設的隊列深度告警閾值的過載消息隊列時,生成告警信息,所述告警信息中包括各過載消息隊列的標識信息及其當前深度;根據告警信息中各過載消息隊列的當前深度、以及業(yè)務服務的平均處理能力,分別確定各過載消息隊列需要增加的業(yè)務服務數量;選取相應數量且滿足配置條件的業(yè)務服務,增加配置給告警信息中各過載消息隊列的標識信息所指示的過載消息隊列。
文檔編號H04W28/08GK102457906SQ20101052339
公開日2012年5月16日 申請日期2010年10月26日 優(yōu)先權日2010年10月26日
發(fā)明者崔洪濤, 盛強, 邵杰, 郭強 申請人:中國移動通信集團河南有限公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
永寿县| 和静县| 西吉县| 太康县| 中牟县| 桃园市| 博客| 容城县| 邵阳市| 渭源县| 从江县| 河南省| 安福县| 西畴县| 泰和县| 城市| 高要市| 元氏县| 蕲春县| 盐山县| 崇阳县| 封开县| 库尔勒市| 五家渠市| 沁源县| 荥经县| 平顶山市| 信宜市| 招远市| 滁州市| 宝清县| 当阳市| 凭祥市| 广昌县| 合作市| 福州市| 济南市| 布拖县| 托里县| 玉田县| 曲周县|