本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種云計算環(huán)境下可靠消息的通信裝置及方法。
背景技術(shù):
在云計算管理平臺中,系統(tǒng)的分布性,異構(gòu)性,自治性日趨明顯。受到網(wǎng)絡(luò)帶寬和系統(tǒng)復(fù)雜性的限制,應(yīng)用系統(tǒng)間的通信在一定程度上受到限制。在大規(guī)模分布式環(huán)境當中,消息通信機制為分布式系統(tǒng)間的多對多的異步通信提供了有效的解決方案。
消息隊列是驅(qū)動分布式應(yīng)用系統(tǒng)中的核心組件,發(fā)布者通過發(fā)布消息到消息服務(wù)器,訂閱者通過從消息服務(wù)器上訂閱消息從而驅(qū)動相關(guān)模塊的運轉(zhuǎn)。目前市場是有很多開源的消息中間件,比如RabbitMQ、ActiveMQ和ZeroMQ都是功能強大的消息中間件,提供高性能可靠的消息路由和轉(zhuǎn)發(fā)功能。
消息的傳輸需要可靠性的保證,避免消息在傳輸過程中丟失導(dǎo)致的資源狀態(tài)不一致的情況?;舅械南⒅虚g件都有相關(guān)機制保證消息的可靠送達。比如a).每個消息分配一個惟一標識符(UUID),從而對每條消息進行跟蹤和確認。b).消息中包含校驗位,從而對消息進行完整性校驗。c).確認重傳機制,每發(fā)一個消息,必須有相關(guān)的確認消息返回,若沒有收到確認消息,重新發(fā)布消息。d).消息發(fā)送和接收的事務(wù),消息發(fā)布到消息服務(wù)器的過程和從消息服務(wù)器接收消息都放到相關(guān)的事務(wù)中,若事務(wù)失敗,回滾消息的狀態(tài),分析消息失敗原因,嘗試重新發(fā)送或接收消息。
以上可靠的機制是針對消息本身的普適的消息傳送方式,但特殊場景下,可靠性不能得到有效保證,比如消息量瞬時量過多,服務(wù)器突然斷電等意外情況可能導(dǎo)致消息的丟失。
技術(shù)實現(xiàn)要素:
鑒于上述的分析,本發(fā)明旨在提供一種云計算環(huán)境下可靠消息的通信裝置及方法,用完全或者至少部分地解決上述問題。
為解決上述問題,本發(fā)明主要是通過以下技術(shù)方案實現(xiàn)的:
本發(fā)明一方面提供了一種云計算環(huán)境下可靠消息的通信裝置,該裝置包括:
消息服務(wù)器,用于接收消息發(fā)送者的消息,轉(zhuǎn)發(fā)一份消息備份到規(guī)則引擎,根據(jù)接收者的接收規(guī)則和消息服務(wù)器的轉(zhuǎn)發(fā)規(guī)則,把消息推送給相關(guān)的消息接收者;
規(guī)則引擎,用于對符合規(guī)則的消息按照預(yù)設(shè)分類規(guī)則對所述消息進行分類處理,將分類處理后的消息轉(zhuǎn)發(fā)給分析引擎,并根據(jù)分析引擎發(fā)來的對消息的分析結(jié)果,將所述消息匹配相關(guān)規(guī)則,使用符合消息服務(wù)器配置規(guī)則的設(shè)置來對所述消息服務(wù)器進行動態(tài)調(diào)整;
分析引擎,用于對所述規(guī)則引擎發(fā)送來的消息進行分析,并將分析結(jié)果反饋給規(guī)則引擎。
進一步地,所述消息服務(wù)器還用于,通過消息隊列維護著消息發(fā)布者和消息接收者之間的連接,通過消息主題維護消息分發(fā)的結(jié)構(gòu),根據(jù)預(yù)設(shè)的消息過濾規(guī)則過濾出要發(fā)布給接收者的消息。
進一步地,所述規(guī)則引擎還用于,對符合規(guī)則的消息按照預(yù)設(shè)的消息類型對所述消息進行分類處理,所述消息類型包括資源生命周期消息、異常警告消息、通知和應(yīng)答消息和用戶操作消息中的一種或多種。
進一步地,所述分析引擎,用于對所述規(guī)則引擎發(fā)送來的消息進行分析,判斷所述消息是警告消息、導(dǎo)致系統(tǒng)崩潰的消息或者需要人工干預(yù)的消息,對不同的消息分類分析整理,并將分析結(jié)果反饋給規(guī)則引擎。
進一步地,規(guī)則引擎,用于在資源生命周期消息過多,根據(jù)相關(guān)規(guī)則配置所述消息服務(wù)器更多的資源。
本發(fā)明另一方面還提供了一種云計算環(huán)境下可靠消息的通信方法,該方法包括:
消息服務(wù)器接收消息發(fā)送者的消息,轉(zhuǎn)發(fā)一份消息備份到規(guī)則引擎,根據(jù)接收者的接收規(guī)則和消息服務(wù)器的轉(zhuǎn)發(fā)規(guī)則,把消息推送給相關(guān)的消息接收者;
規(guī)則引擎對符合規(guī)則的消息按照預(yù)設(shè)分類規(guī)則對所述消息進行分類處理,將分類處理后的消息轉(zhuǎn)發(fā)給分析引擎,并根據(jù)分析引擎發(fā)來的對消息的分析結(jié)果,將所述消息匹配相關(guān)規(guī)則,使用符合消息服務(wù)器配置規(guī)則的設(shè)置來對所述消息服務(wù)器進行動態(tài)調(diào)整;
分析引擎對所述規(guī)則引擎發(fā)送來的消息進行分析,并將分析結(jié)果反饋給規(guī)則引擎。
該方法還包括:所述消息服務(wù)器通過消息隊列維護著消息發(fā)布者和消息接收者之間的連接,通過消息主題維護消息分發(fā)的結(jié)構(gòu),根據(jù)預(yù)設(shè)的消息過濾規(guī)則過濾出要發(fā)布給接收者的消息。
進一步地,所述規(guī)則引擎對符合規(guī)則的消息按照預(yù)設(shè)分類規(guī)則對所述消息進行分類處理,具體包括:
所述規(guī)則引擎對符合規(guī)則的消息按照預(yù)設(shè)的消息類型對所述消息進行分類處理,所述消息類型包括資源生命周期消息、異常警告消息、通知和應(yīng)答消息和用戶操作消息中的一種或多種。
進一步地,所述分析引擎對所述規(guī)則引擎發(fā)送來的消息進行分析,并將分析結(jié)果反饋給規(guī)則引擎,具體包括:
所述分析引擎,用于對所述規(guī)則引擎發(fā)送來的消息進行分析,判斷所述消息是警告消息、導(dǎo)致系統(tǒng)崩潰的消息或者需要人工干預(yù)的消息,對不同的消息分類分析整理,并將分析結(jié)果反饋給規(guī)則引擎。
進一步地,所述規(guī)則引擎在資源生命周期消息過多,根據(jù)相關(guān)規(guī)則配置所述消息服務(wù)器更多的資源。
本發(fā)明有益效果如下:
本發(fā)明根據(jù)消息服務(wù)器中消息發(fā)送、轉(zhuǎn)發(fā)以及發(fā)布等情況統(tǒng)計相關(guān)信息,匹配消息規(guī)則引擎配置,自動配置消息服務(wù)器,使消息服務(wù)在保證穩(wěn)定性的前提下性能最優(yōu),從而有效解決了在消息過載,意外斷電等情況下,消息服務(wù)器中消息丟失,服務(wù)器異常等不穩(wěn)定因素,而導(dǎo)致的消息發(fā)送的可靠性低的問題。
本發(fā)明的其他特征和優(yōu)點將在隨后的說明書中闡述,并且部分的從說明書中變得顯而易見,或者通過實施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點可通過在所寫的說明書、權(quán)利要求書、以及附圖中所特別指出的結(jié)構(gòu)來實現(xiàn)和獲得。
附圖說明
圖1為本發(fā)明實施例的一種云計算環(huán)境下可靠消息的通信裝置的結(jié)構(gòu)示意圖;
圖2為本發(fā)明實施例的消息隊列的示意圖;
圖3為本發(fā)明實施例的消息主題的示意圖。
具體實施方式
下面結(jié)合附圖來具體描述本發(fā)明的優(yōu)選實施例,其中,附圖構(gòu)成本申請一部分,并與本發(fā)明的實施例一起用于闡釋本發(fā)明的原理。為了清楚和簡化目的,當其可能使本發(fā)明的主題模糊不清時,將省略本文所描述的器件中已知功能和結(jié)構(gòu)的詳細具體說明。
本發(fā)明提供了一種云計算環(huán)境下可靠消息的通信裝置及方法,本發(fā)明根據(jù)消息服務(wù)器中消息發(fā)送、轉(zhuǎn)發(fā)以及發(fā)布等情況統(tǒng)計相關(guān)信息,匹配消息規(guī)則引擎配置,自動配置消息服務(wù)器,使消息服務(wù)在保證穩(wěn)定性的前提下性能最優(yōu)。本發(fā)明成功應(yīng)用到Cloudview云計算管理平臺和實驗平臺的計算平臺上。以下結(jié)合附圖以及幾個實施例,對本發(fā)明進行進一步詳細說明。應(yīng)當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不限定本發(fā)明。
本發(fā)明實施例提供了一種云計算環(huán)境下可靠消息的通信裝置,參見圖1,該裝置包括:
消息服務(wù)器,用于接收消息發(fā)送者的消息,轉(zhuǎn)發(fā)一份消息備份到規(guī)則引擎,根據(jù)接收者的接收規(guī)則和消息服務(wù)器的轉(zhuǎn)發(fā)規(guī)則,把消息推送給相關(guān)的消息接收者;
比如有四個消息:1.虛擬機創(chuàng)建的消息,2.虛擬機銷毀的消息,3.虛擬網(wǎng)絡(luò)創(chuàng)建的消息,4.虛擬網(wǎng)絡(luò)銷毀的消息,通過定義接收規(guī)則:只接收虛擬機的消息,那么對應(yīng)的轉(zhuǎn)發(fā)規(guī)則只轉(zhuǎn)發(fā)消息1和消息2,或者,定義接收規(guī)則:只接收實體創(chuàng)建的消息,那么對應(yīng)的轉(zhuǎn)發(fā)規(guī)則只轉(zhuǎn)發(fā)消息1和消息3。
規(guī)則引擎,用于對消息的轉(zhuǎn)發(fā)規(guī)則按照預(yù)設(shè)分類進行分類處理,將分類處理后的結(jié)果傳遞給分析引擎,并根據(jù)分析引擎發(fā)來的對消息的分析結(jié)果,將所述消息匹配轉(zhuǎn)發(fā)規(guī)則,使用符合消息服務(wù)器配置規(guī)則的設(shè)置來對所述消息服務(wù)器進行動態(tài)調(diào)整;
分析引擎,用于對所述規(guī)則引擎發(fā)送來的消息的轉(zhuǎn)發(fā)規(guī)則進行分析,并將分析結(jié)果反饋給規(guī)則引擎。
本發(fā)明根據(jù)消息服務(wù)器中消息發(fā)送、轉(zhuǎn)發(fā)以及發(fā)布等情況統(tǒng)計相關(guān)信息,匹配消息規(guī)則引擎配置,自動配置消息服務(wù)器,使消息服務(wù)在保證穩(wěn)定性的前提下性能最優(yōu),從而有效解決了在消息過載,意外斷電等情況下,消息服務(wù)器中消息丟失,服務(wù)器異常等不穩(wěn)定因素,而導(dǎo)致的消息發(fā)送的可靠性低的問題。
具體實施時,本發(fā)明實施例所述消息服務(wù)器通過消息隊列維護著消息發(fā)布者和消息接收者之間的連接,通過消息主題維護消息分發(fā)的結(jié)構(gòu),根據(jù)預(yù)設(shè)的消息過濾規(guī)則過濾出要發(fā)布給接收者的消息。
本發(fā)明實施例所述規(guī)則引擎對符合規(guī)則的消息按照預(yù)設(shè)的消息類型對所述消息進行分類處理,所述消息類型包括資源生命周期消息、異常警告消息、通知和應(yīng)答消息和用戶操作消息中的一種或多種。
本發(fā)明實施例所述分析引擎對所述規(guī)則引擎發(fā)送來的消息進行分析,判斷所述消息是警告消息、導(dǎo)致系統(tǒng)崩潰的消息或者需要人工干預(yù)的消息,對不同的消息分類分析整理,并將分析結(jié)果反饋給規(guī)則引擎。
本發(fā)明實施例的規(guī)則引擎在資源生命周期消息過多,根據(jù)相關(guān)規(guī)則配置所述消息服務(wù)器更多的資源。
下面將通過一個具體的例子對本發(fā)明所述的裝置進行詳細的解釋和說明:
消息通信主要有五個模塊組成:消息發(fā)送者,消息接收者,消息服務(wù)器,規(guī)則引擎,分析引擎。
消息在各個模塊的流轉(zhuǎn),消息發(fā)送者發(fā)布消息到消息服務(wù)器,同時消息服務(wù)器轉(zhuǎn)發(fā)一份消息備份到規(guī)則引擎,規(guī)則引擎對符合規(guī)則消息進行分類處理,之后轉(zhuǎn)發(fā)給分析引擎,分析引擎把分析結(jié)果反饋給規(guī)則引擎,規(guī)則引擎匹配相關(guān)規(guī)則,使用符合服務(wù)器配置規(guī)則的設(shè)置來動態(tài)調(diào)整消息服務(wù)器。
2.消息規(guī)則引擎
規(guī)則引擎中的規(guī)則主要包括對消息的分類處理,包括,資源生命周期消息,異常警告消息,通知和應(yīng)答消息,用戶操作消息。
3.消息統(tǒng)計分析算法
消息統(tǒng)計包括總體統(tǒng)計:5秒內(nèi)消息發(fā)送數(shù)量,消息分發(fā)數(shù)量等
針對規(guī)則引擎中對消息的分類,使用不同的分析策略,詳情見消息規(guī)則引擎部分。
具體來說,本發(fā)明主要包含以下幾方面的內(nèi)容:
消息服務(wù)器是一個接收并轉(zhuǎn)發(fā)消息的容器,所有的消息都發(fā)往消息服務(wù)器(Broker),消息服務(wù)器根據(jù)接收者的接收規(guī)則和消息服務(wù)器的轉(zhuǎn)發(fā)規(guī)則,把消息推送給相關(guān)的消息接收者。
消息服務(wù)器維護相關(guān)著消息轉(zhuǎn)發(fā)相關(guān)的數(shù)據(jù)結(jié)構(gòu),如圖2和3所示,消息服務(wù)器中包括:
消息隊列(Message Queue)維護著消息發(fā)布者和消息接收者兩者的連接,從而實現(xiàn)消息接收者和發(fā)布者的點對點通信。這種類型的通信方式能夠保證數(shù)據(jù)順序到達,由于是點對點通信,效率更高。
消息主題(Message Topic)維護著消息分發(fā)的結(jié)構(gòu),消息接收者把要接收的消息過濾器放到服務(wù)器上,服務(wù)器根據(jù)消息過濾器過濾出要發(fā)布給接收者的消息,一個接收者可以接收多個發(fā)布者的消息,一個消息可以分發(fā)給多個接收者。
規(guī)則引擎負責(zé)處理消息轉(zhuǎn)發(fā)邏輯和服務(wù)器動態(tài)配置邏輯,前者根據(jù)邏輯規(guī)則把消息推送給相關(guān)的接收者,所以消息轉(zhuǎn)發(fā)的邏輯規(guī)則和相關(guān)的業(yè)務(wù)流程相關(guān),哪些業(yè)務(wù)系統(tǒng)需要知道哪些消息,什么情況下需要知道哪些消息等,這些規(guī)則需要在系統(tǒng)上線后根據(jù)業(yè)務(wù)進行初始配置;后者根據(jù)消息分析引擎,實時分析消息轉(zhuǎn)發(fā)數(shù)據(jù),數(shù)據(jù)反饋給規(guī)則引擎,規(guī)則引擎根據(jù)消息服務(wù)器業(yè)務(wù)規(guī)則動態(tài)配置消息服務(wù)器,使消息服務(wù)器時刻保持在最穩(wěn)定的運行狀態(tài)。
消息轉(zhuǎn)發(fā)邏輯規(guī)則:轉(zhuǎn)發(fā)給分析引擎的規(guī)則
轉(zhuǎn)發(fā)給分析引擎的規(guī)則安裝消息場景對消息分類,包括:
資源生命周期消息:把資源申請,創(chuàng)建,釋放,刪除等消息轉(zhuǎn)發(fā)給分析引擎的資源生命周期模塊,統(tǒng)計哪些資源申請的比較頻繁,哪些資源釋放的比較頻繁,或者統(tǒng)計不同資源的周期長短。
系統(tǒng)異常警告消息:根據(jù)系統(tǒng)能夠警告級別對信息進行分類,判斷哪些系統(tǒng)消息是警告,哪些可能導(dǎo)致崩潰,哪些需要人工干預(yù)。對不同的消息分類分析整理,進一步轉(zhuǎn)發(fā)給系統(tǒng)告警模塊,從而采取相應(yīng)的措施,比如自動擴展虛擬機的計算能力,或者聯(lián)系管理員限制資源使用。
通知和應(yīng)答消息:通知是有對接收者有針對性的發(fā)送消息,等待接收者接收到消息并發(fā)出確認通知后,消息發(fā)送者才能進一步完成后續(xù)的工作。通過這種機制,不同系統(tǒng)之間實現(xiàn)了同步機制。分析引擎自動匹配通知和應(yīng)答消息,并刪除過時的應(yīng)答消息,保證系統(tǒng)同步過程不至于卡死。
用戶操作消息:不管用戶在系統(tǒng)中進行任何操作,都要發(fā)送相關(guān)的消息,以記錄用戶行為。分析引擎通過對用戶行為上下文進行分析,對用戶操作不當?shù)男袨樽龀鱿鄳?yīng)提示或警告。
消息接收者委托給服務(wù)器的接收規(guī)則:
消息接收者設(shè)置一個消息過濾器,過濾掉接收者不關(guān)心的消息,從而更高效的接收消息。消息接收者把消息的過濾條件發(fā)送給規(guī)則引擎,規(guī)則引擎根據(jù)消息過濾器的設(shè)置配置服務(wù)器,過濾器的語法為:
規(guī)則引擎規(guī)則預(yù)設(shè)規(guī)則,把不同的消息分別發(fā)送的不同的分析引擎中來,針對不同的消息類型進行分析
比如系統(tǒng)異常告警消息,根據(jù)系統(tǒng)能夠警告級別對信息進行分類,判斷哪些系統(tǒng)消息是警告,哪些可能導(dǎo)致崩潰,哪些需要人工干預(yù)。對不同的消息分類分析整理,進一步轉(zhuǎn)發(fā)給系統(tǒng)告警模塊,從而采取相應(yīng)的措施,比如自動擴展虛擬機的計算能力,或者聯(lián)系管理員限制資源使用。
動態(tài)配置消息服務(wù)器:
規(guī)則引擎根據(jù)相關(guān)的規(guī)則來配置服務(wù)器,比如當消息數(shù)據(jù)量達到60萬條每秒的時候,分配300M內(nèi)存給消息服務(wù)器,當消息數(shù)據(jù)量達到120萬條每秒的時候,分配500M內(nèi)存給消息服務(wù)器。
當系統(tǒng)自動申請大量資源的時候,系統(tǒng)會發(fā)送大量資源生命周期消息,系統(tǒng)分析器根據(jù)資源生命周期消息的分析模塊進行統(tǒng)計分析,根據(jù)分析結(jié)果反饋給規(guī)則引擎,規(guī)則引擎發(fā)現(xiàn)資源生命周期消息過多,規(guī)則引擎根據(jù)相關(guān)規(guī)則配置消息服務(wù)器更多的資源以滿足消息服務(wù)器的需求。
本發(fā)明實施例還提供了一種云計算環(huán)境下可靠消息的通信方法,該方法包括:
消息服務(wù)器接收消息發(fā)送者的消息,轉(zhuǎn)發(fā)一份消息備份到規(guī)則引擎,根據(jù)接收者的接收規(guī)則和消息服務(wù)器的轉(zhuǎn)發(fā)規(guī)則,把消息推送給相關(guān)的消息接收者;
規(guī)則引擎對符合規(guī)則的消息按照預(yù)設(shè)分類規(guī)則對所述消息進行分類處理,將分類處理后的消息轉(zhuǎn)發(fā)給分析引擎,并根據(jù)分析引擎發(fā)來的對消息的分析結(jié)果,將所述消息匹配相關(guān)規(guī)則,使用符合消息服務(wù)器配置規(guī)則的設(shè)置來對所述消息服務(wù)器進行動態(tài)調(diào)整;
分析引擎對所述規(guī)則引擎發(fā)送來的消息進行分析,并將分析結(jié)果反饋給規(guī)則引擎。
具體實施時,本發(fā)明實施例的所述消息服務(wù)器通過消息隊列維護著消息發(fā)布者和消息接收者之間的連接,通過消息主題維護消息分發(fā)的結(jié)構(gòu),根據(jù)預(yù)設(shè)的消息過濾規(guī)則過濾出要發(fā)布給接收者的消息。
具體實施時,本發(fā)明實施例的所述規(guī)則引擎對符合規(guī)則的消息按照預(yù)設(shè)分類規(guī)則對所述消息進行分類處理,具體包括:
所述規(guī)則引擎對符合規(guī)則的消息按照預(yù)設(shè)的消息類型對所述消息進行分類處理,所述消息類型包括資源生命周期消息、異常警告消息、通知和應(yīng)答消息和用戶操作消息中的一種或多種。
具體實施時,本發(fā)明實施例的所述分析引擎對所述規(guī)則引擎發(fā)送來的消息進行分析,并將分析結(jié)果反饋給規(guī)則引擎,具體包括:
所述分析引擎,用于對所述規(guī)則引擎發(fā)送來的消息進行分析,判斷所述消息是警告消息、導(dǎo)致系統(tǒng)崩潰的消息或者需要人工干預(yù)的消息,對不同的消息分類分析整理,并將分析結(jié)果反饋給規(guī)則引擎。
具體實施時,本發(fā)明實施例的所述規(guī)則引擎在資源生命周期消息過多,根據(jù)相關(guān)規(guī)則配置所述消息服務(wù)器更多的資源。
以上所述,僅為本發(fā)明較佳的具體實施方式,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應(yīng)該以權(quán)利要求書的保護范圍為準。