本發(fā)明涉及通信技術(shù)領(lǐng)域,特別是涉及一種消息處理方法和裝置。
背景技術(shù):
一般地,系統(tǒng)內(nèi)部需要處理的消息數(shù)量異常龐大,經(jīng)常出現(xiàn)消息的丟失和遺漏。
以網(wǎng)管系統(tǒng)為例,在網(wǎng)管系統(tǒng)中,網(wǎng)管系統(tǒng)會(huì)頻繁接收和處理來(lái)自被管理網(wǎng)元以及自身所產(chǎn)生的各類(lèi)消息,同時(shí),還需要將各類(lèi)消息轉(zhuǎn)發(fā)上報(bào)給更高一級(jí)的系統(tǒng)或是其它相關(guān)的外部系統(tǒng)。由于涉及內(nèi)部、外部多個(gè)處理節(jié)點(diǎn)以及多次轉(zhuǎn)發(fā)上報(bào),在傳輸處理過(guò)程中,很難避免由于協(xié)議、傳輸?shù)葐?wèn)題所導(dǎo)致的消息丟失問(wèn)題,一旦消息丟失即出現(xiàn)系統(tǒng)間消息不一致的情況,將造成對(duì)系統(tǒng)問(wèn)題或者狀態(tài)的遺漏或是誤判,嚴(yán)重影響系統(tǒng)和業(yè)務(wù)的執(zhí)行。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供一種消息處理方法和裝置,以解決由于消息丟失而導(dǎo)致的系統(tǒng)和業(yè)務(wù)無(wú)法執(zhí)行的問(wèn)題。
為了解決上述問(wèn)題,本發(fā)明公開(kāi)了一種消息處理方法,包括:
對(duì)至少一個(gè)節(jié)點(diǎn)上的收發(fā)消息進(jìn)行采集;其中,所述至少一個(gè)節(jié)點(diǎn)根據(jù)業(yè)務(wù)類(lèi)型確定;
根據(jù)采集得到的各個(gè)節(jié)點(diǎn)上的收發(fā)消息,判斷隸屬于同一矢量方向上的節(jié)點(diǎn)中是否存在消息丟失;
若是,則確定丟失的消息,并根據(jù)預(yù)置規(guī)則對(duì)所述丟失的消息進(jìn)行處理。
優(yōu)選的,所述判斷隸屬于同一矢量方向上的節(jié)點(diǎn)中是否存在消息丟失,包括:
確定同一矢量方向上的起始節(jié)點(diǎn)和終止節(jié)點(diǎn);
分別獲取所述起始節(jié)點(diǎn)上的第一收發(fā)消息和所述終止節(jié)點(diǎn)上的第二收發(fā)消息;
根據(jù)所述第一收發(fā)消息和所述第二收發(fā)消息判斷隸屬于同一矢量方向上的節(jié)點(diǎn)中是否存在消息丟失。
優(yōu)選的,所述確定丟失的消息,包括:
確定存在消息丟失的節(jié)點(diǎn);
獲取所述存在消息丟失的節(jié)點(diǎn)的上一級(jí)節(jié)點(diǎn)上的收發(fā)消息;
將所述獲取的收發(fā)消息確定為所述丟失的消息。
優(yōu)選的,所述根據(jù)預(yù)置規(guī)則對(duì)所述丟失的消息進(jìn)行處理,包括:
將所述丟失的消息發(fā)送給存在消息丟失的節(jié)點(diǎn),以實(shí)現(xiàn)消息的恢復(fù)自愈。
優(yōu)選的,所述將所述丟失的消息進(jìn)行發(fā)送給所述存在消息丟失的節(jié)點(diǎn),包括:
確定所述存在消息丟失的節(jié)點(diǎn)的通信協(xié)議;
根據(jù)所述確定的通信協(xié)議對(duì)所述丟失的消息進(jìn)行重打包;
將重打包的所述丟失的消息發(fā)送給所述存在消息丟失的節(jié)點(diǎn)。
優(yōu)選的,所述方法還包括:
通過(guò)設(shè)定接口獲取各個(gè)節(jié)點(diǎn)的注冊(cè)信息;其中,所述注冊(cè)信息至少包括:消息源標(biāo)識(shí)、本節(jié)點(diǎn)標(biāo)識(shí)、消息目的標(biāo)識(shí)、消息特征標(biāo)識(shí)和所述預(yù)置規(guī)則。
優(yōu)選的,所述根據(jù)預(yù)置規(guī)則對(duì)所述丟失的消息進(jìn)行處理,包括:
獲取存在消息丟失的節(jié)點(diǎn)的注冊(cè)信息;
根據(jù)所述存在消息丟失的節(jié)點(diǎn)的注冊(cè)信息,將所述丟失的消息發(fā)送給存在消息丟失的節(jié)點(diǎn)。
本發(fā)明還公開(kāi)了一種消息處理裝置,包括:
采集模塊,用于對(duì)至少一個(gè)節(jié)點(diǎn)上的收發(fā)消息進(jìn)行采集;其中,所述至少一個(gè)節(jié)點(diǎn)根據(jù)業(yè)務(wù)類(lèi)型確定;
判斷模塊,用于根據(jù)采集得到的各個(gè)節(jié)點(diǎn)上的收發(fā)消息,判斷隸屬于同一矢量方向上的節(jié)點(diǎn)中是否存在消息丟失;
確定模塊,用于在存在消息丟失時(shí),確定丟失的消息;
處理模塊,用于根據(jù)預(yù)置規(guī)則對(duì)所述丟失的消息進(jìn)行處理。
優(yōu)選的,所述判斷模塊,包括:
確定子模塊,用于確定同一矢量方向上的起始節(jié)點(diǎn)和終止節(jié)點(diǎn);
獲取子模塊,用于分別獲取所述起始節(jié)點(diǎn)上的第一收發(fā)消息和所述終止節(jié)點(diǎn)上的第二收發(fā)消息;
判斷子模塊,用于根據(jù)所述第一收發(fā)消息和所述第二收發(fā)消息判斷隸屬于同一矢量方向上的節(jié)點(diǎn)中是否存在消息丟失。
優(yōu)選的,所述確定模塊,包括:
節(jié)點(diǎn)確定子模塊,用于在存在消息丟失時(shí),確定存在消息丟失的節(jié)點(diǎn);
消息獲取子模塊,用于獲取所述存在消息丟失的節(jié)點(diǎn)的上一級(jí)節(jié)點(diǎn)上的收發(fā)消息;
消息確定子模塊,用于將所述獲取的收發(fā)消息確定為所述丟失的消息。
優(yōu)選的,所述處理模塊,用于將所述丟失的消息發(fā)送給存在消息丟失的節(jié)點(diǎn),以實(shí)現(xiàn)消息的恢復(fù)自愈。
優(yōu)選的,所述處理模塊,包括:
協(xié)議確定子模塊,用于確定所述存在消息丟失的節(jié)點(diǎn)的通信協(xié)議;
重打包子模塊,用于根據(jù)所述確定的通信協(xié)議對(duì)所述丟失的消息進(jìn)行重打包;
第一發(fā)送子模塊,用于將重打包的所述丟失的消息發(fā)送給所述存在消息丟失的節(jié)點(diǎn)。
優(yōu)選的,所述裝置還包括:
接收模塊,用于通過(guò)設(shè)定接口獲取各個(gè)節(jié)點(diǎn)的注冊(cè)信息;其中,所述注冊(cè)信息至少包括:消息源標(biāo)識(shí)、本節(jié)點(diǎn)標(biāo)識(shí)、消息目的標(biāo)識(shí)、消息特征標(biāo)識(shí)和所述預(yù)置規(guī)則。
優(yōu)選的,所述處理模塊,包括:
注冊(cè)信息獲取子模塊,用于獲取存在消息丟失的節(jié)點(diǎn)的注冊(cè)信息;
第二發(fā)送子模塊,用于根據(jù)所述存在消息丟失的節(jié)點(diǎn)的注冊(cè)信息,將所 述丟失的消息發(fā)送給存在消息丟失的節(jié)點(diǎn)。
與現(xiàn)有技術(shù)相比,本發(fā)明包括以下優(yōu)點(diǎn):
本發(fā)明公開(kāi)的消息處理方案可以對(duì)至少一個(gè)節(jié)點(diǎn)上的收發(fā)消息進(jìn)行采集;根據(jù)采集得到的各個(gè)節(jié)點(diǎn)上的收發(fā)消息,判斷隸屬于同一矢量方向上的節(jié)點(diǎn)中是否存在消息丟失;在存在消息丟失時(shí)確定丟失的消息,并根據(jù)預(yù)置規(guī)則對(duì)所述丟失的消息進(jìn)行處理??梢?jiàn),在本發(fā)明中,可以根據(jù)實(shí)時(shí)采集的數(shù)據(jù)信息,及時(shí)發(fā)現(xiàn)消息收發(fā)過(guò)程中出現(xiàn)的消息遺漏和/或丟失情況,并可以即時(shí)完成對(duì)遺漏和/或丟失的消息的處理,保證了處理效率,縮短了處理周期,有效避免了消息遺漏和/或丟失情況對(duì)系統(tǒng)和正常業(yè)務(wù)的影響。
附圖說(shuō)明
圖1是本發(fā)明實(shí)施例一中一種消息處理方法的步驟流程圖;
圖2是本發(fā)明實(shí)施例二中一種消息處理方法的步驟流程圖;
圖3是本發(fā)明實(shí)施例三中一種消息自愈裝置的結(jié)構(gòu)示意圖;
圖4是本發(fā)明實(shí)施例三中一種消息自愈裝置的執(zhí)行流程示意圖;
圖5是本發(fā)明實(shí)施例三中一種消息探測(cè)的示意圖;
圖6是本發(fā)明實(shí)施例四中一種消息處理裝置的結(jié)構(gòu)框圖;
圖7是本發(fā)明實(shí)施例四中一種優(yōu)選的消息處理裝置的結(jié)構(gòu)示意圖。
具體實(shí)施方式
為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖和具體實(shí)施方式對(duì)本發(fā)明作進(jìn)一步詳細(xì)的說(shuō)明。
實(shí)施例一
參照?qǐng)D1,示出了本發(fā)明實(shí)施例一中一種消息處理方法的步驟流程圖。在本實(shí)施例中,所述消息處理方法可以包括:
步驟102,對(duì)至少一個(gè)節(jié)點(diǎn)上的收發(fā)消息進(jìn)行采集。
一般地,消息在整個(gè)應(yīng)用系統(tǒng)中的傳遞方向是跨多個(gè)節(jié)點(diǎn)或者存在多個(gè)分支(即從一個(gè)節(jié)點(diǎn)發(fā)起,終結(jié)在多個(gè)節(jié)點(diǎn))。某一個(gè)矢量方向上消息的傳 遞和處理路徑是唯一的,方向也是一直向前并在某一個(gè)節(jié)點(diǎn)處終結(jié)。在本實(shí)施例中,可以對(duì)消息傳遞過(guò)程中途經(jīng)的至少一個(gè)節(jié)點(diǎn)進(jìn)行監(jiān)測(cè),對(duì)至少一個(gè)節(jié)點(diǎn)上的收發(fā)消息進(jìn)行采集。
如上所述,不同的業(yè)務(wù)類(lèi)型所涉及的節(jié)點(diǎn)不完全相同,也即,所述至少一個(gè)節(jié)點(diǎn)可以根據(jù)業(yè)務(wù)類(lèi)型來(lái)確定。
步驟104,根據(jù)采集得到的各個(gè)節(jié)點(diǎn)上的收發(fā)消息,判斷隸屬于同一矢量方向上的節(jié)點(diǎn)中是否存在消息丟失。
如前所述,某一個(gè)矢量方向上消息的傳遞和處理路徑是唯一的,一般地,消息若是正常傳遞(無(wú)異常),則起始節(jié)點(diǎn)處對(duì)應(yīng)的消息與終止節(jié)點(diǎn)處對(duì)應(yīng)的消息是一致的,若起始節(jié)點(diǎn)處對(duì)應(yīng)的消息與終止節(jié)點(diǎn)處對(duì)應(yīng)的消息不一致,則消息可能存在丟失,消息異常。
在本實(shí)施例中,若隸屬于同一矢量方向上的節(jié)點(diǎn)中存在消息丟失,則可以執(zhí)行下述步驟106。若隸屬于同一矢量方向上的節(jié)點(diǎn)中不存在消息丟失,則可不作任何處理。
步驟106,確定丟失的消息。
在本實(shí)施例中,可以采用任意一種適當(dāng)?shù)姆绞絹?lái)確定具體丟失的消息,例如,通過(guò)前后節(jié)點(diǎn)消息的對(duì)比等方式來(lái)確定丟失的消息,本實(shí)施例對(duì)此不作限制。
步驟108,根據(jù)預(yù)置規(guī)則對(duì)所述丟失的消息進(jìn)行處理。
在本實(shí)施例中,在確定丟失的消息之后,可以根據(jù)預(yù)置規(guī)則對(duì)所述丟失的消息進(jìn)行處理,如,根據(jù)所述確定的丟失的消息進(jìn)行消息的恢復(fù),以保證應(yīng)用系統(tǒng)、處理的業(yè)務(wù)的正常運(yùn)行。又例如,可以根據(jù)確定的丟失的消息生成消息通知,并將消息通知發(fā)送給用戶,以便用戶根據(jù)所述消息通知進(jìn)行分析處理。還例如,可以直接結(jié)束并返回,重新開(kāi)始業(yè)務(wù)的執(zhí)行。本實(shí)施例對(duì)此不作限制。
綜上所述,本實(shí)施例所述的消息處理方法,可以對(duì)至少一個(gè)節(jié)點(diǎn)上的收發(fā)消息進(jìn)行采集;根據(jù)采集得到的各個(gè)節(jié)點(diǎn)上的收發(fā)消息,判斷隸屬于同一矢量方向上的節(jié)點(diǎn)中是否存在消息丟失;在存在消息丟失時(shí)確定丟失的消 息,并根據(jù)預(yù)置規(guī)則對(duì)所述丟失的消息進(jìn)行處理。可見(jiàn),在實(shí)施例中,可以根據(jù)實(shí)時(shí)采集的數(shù)據(jù)信息,及時(shí)發(fā)現(xiàn)消息收發(fā)過(guò)程中出現(xiàn)的消息遺漏和/或丟失情況,并可以即時(shí)完成對(duì)遺漏和/或丟失的消息的處理,保證了處理效率,縮短了處理周期,有效避免了消息遺漏和/或丟失情況對(duì)系統(tǒng)和正常業(yè)務(wù)的影響。
實(shí)施例二
參照?qǐng)D2,示出了本發(fā)明實(shí)施例二中一種消息處理方法的步驟流程圖。在本實(shí)施例中,所述消息處理方法可以包括:
步驟202,通過(guò)設(shè)定接口獲取各個(gè)節(jié)點(diǎn)的注冊(cè)信息。
在本實(shí)施例中,可以通過(guò)任意一種適當(dāng)?shù)姆绞絹?lái)獲取各個(gè)節(jié)點(diǎn)的注冊(cè)信息,例如,可以通過(guò)設(shè)定接口獲取各個(gè)節(jié)點(diǎn)的注冊(cè)信息。又例如,可以通過(guò)系統(tǒng)間的消息通知的方式來(lái)獲取各個(gè)節(jié)點(diǎn)的注冊(cè)信息,本實(shí)施例對(duì)此不作限制。其中,所述注冊(cè)信息包括但不僅限于:消息源標(biāo)識(shí)、本節(jié)點(diǎn)標(biāo)識(shí)、消息目的標(biāo)識(shí)、消息特征標(biāo)識(shí)和預(yù)置規(guī)則中的至少一種。所述預(yù)置規(guī)則可以用于指示對(duì)丟失消息的處理。
步驟204,對(duì)至少一個(gè)節(jié)點(diǎn)上的收發(fā)消息進(jìn)行采集。
在本實(shí)施例中,一種可行的消息采集方式可以如下:通過(guò)在所述至少一個(gè)節(jié)點(diǎn)上插入探針的方式來(lái)收集所述收發(fā)消息。需要說(shuō)明的是,在本實(shí)施例中,可以對(duì)統(tǒng)一矢量方向上的所有節(jié)點(diǎn)上的收發(fā)消息都進(jìn)行采集,也可以根據(jù)業(yè)務(wù)需求,選擇任意適當(dāng)數(shù)量的部分節(jié)點(diǎn)進(jìn)行收發(fā)消息的采集,降低工作量,提高了對(duì)消息的恢復(fù)和處理效率,降低了設(shè)備負(fù)擔(dān)。
步驟206,根據(jù)采集得到的各個(gè)節(jié)點(diǎn)上的收發(fā)消息,判斷隸屬于同一矢量方向上的節(jié)點(diǎn)中是否存在消息丟失。
在本實(shí)施例中,可以但不僅限于通過(guò)如下方式判斷隸屬于同一矢量方向上的節(jié)點(diǎn)中是否存在消息丟失:
首先,確定同一矢量方向上的起始節(jié)點(diǎn)和終止節(jié)點(diǎn)。
在本實(shí)施例中,可以但不僅限于根據(jù)節(jié)點(diǎn)的注冊(cè)信息來(lái)確定所述
然后,分別獲取所述起始節(jié)點(diǎn)上的第一收發(fā)消息和所述終止節(jié)點(diǎn)上的第 二收發(fā)消息。
最后,根據(jù)所述第一收發(fā)消息和所述第二收發(fā)消息判斷隸屬于同一矢量方向上的節(jié)點(diǎn)中是否存在消息丟失。
在本實(shí)施例中,若所述第一收發(fā)消息和所述第二收發(fā)消息一致,則說(shuō)明不存在消息的丟失,可以不進(jìn)行處理。若所述第一收發(fā)消息和所述第二收發(fā)消息不一致,則說(shuō)明存在消息的丟失,可以執(zhí)行下述步驟208。
步驟208,確定丟失的消息。
在本實(shí)施例中,一種可行的確定丟失的消息的方法可以如下:
子步驟2082,確定存在消息丟失的節(jié)點(diǎn)。
在本實(shí)施例中,為了提高存在消息丟失的節(jié)點(diǎn)的查找和確定速度,可以通過(guò)二分查找法來(lái)確定所述存在消息丟失的節(jié)點(diǎn)。具體地:假設(shè)起始節(jié)點(diǎn)處的收發(fā)消息為消息a,從起始節(jié)點(diǎn)到終止節(jié)點(diǎn)共計(jì)m個(gè)節(jié)點(diǎn)(包括起始節(jié)點(diǎn)和終止節(jié)點(diǎn))。首先。檢查m/2節(jié)點(diǎn)對(duì)應(yīng)的消息b與所述消息a是否一致,若一致,則繼續(xù)檢查(m/2+1)節(jié)點(diǎn)到終止節(jié)點(diǎn)間的節(jié)點(diǎn)部分;若不一致,則繼續(xù)檢查m/2節(jié)點(diǎn)到起始節(jié)點(diǎn)間的節(jié)點(diǎn)部分。如此循環(huán),不再贅述,直至確定存在消息丟失的節(jié)點(diǎn)。
子步驟2084,獲取所述存在消息丟失的節(jié)點(diǎn)的上一級(jí)節(jié)點(diǎn)上的收發(fā)消息。
子步驟2086,將所述獲取的收發(fā)消息確定為所述丟失的消息。
在本實(shí)施例中,可以將所述存在消息丟失的節(jié)點(diǎn)的上一級(jí)節(jié)點(diǎn)上的收發(fā)消息確定為所述丟失的消息,也可以直接將起始節(jié)點(diǎn)處對(duì)應(yīng)的收發(fā)消息確定為所述丟失的消息,本實(shí)施例對(duì)此不作限制。
步驟210,根據(jù)預(yù)置規(guī)則對(duì)所述丟失的消息進(jìn)行處理。
在本實(shí)施例中,所述預(yù)置規(guī)則可以包括自恢復(fù)規(guī)則,例如:可以將所述丟失的消息發(fā)送給存在消息丟失的節(jié)點(diǎn),以實(shí)現(xiàn)消息的恢復(fù)自愈。具體地,可以確定所述存在消息丟失的節(jié)點(diǎn)的通信協(xié)議;根據(jù)所述確定的通信協(xié)議對(duì)所述丟失的消息進(jìn)行重打包;將重打包的所述丟失的消息發(fā)送給所述存在消息丟失的節(jié)點(diǎn)。
又例如,可以獲取存在消息丟失的節(jié)點(diǎn)的注冊(cè)信息;根據(jù)所述存在消息丟失的節(jié)點(diǎn)的注冊(cè)信息,將所述丟失的消息發(fā)送給存在消息丟失的節(jié)點(diǎn)。本實(shí)施例對(duì)此不作限制。
當(dāng)然,在本實(shí)施例中,也可以只將所述丟失的消息發(fā)送給用戶,或者,將存在消息丟失這一狀態(tài)反饋給用戶,又或者,可以根據(jù)丟失的消息的重要程度選擇是否通知用戶(如,丟失的消息若不影響業(yè)務(wù)的繼續(xù)執(zhí)行,則可以選擇不上報(bào)丟失狀態(tài),不通知用戶)。本實(shí)施例提供多種選擇處理方式,實(shí)現(xiàn)了對(duì)丟下的消息的靈活處理,即保證了業(yè)務(wù)的正常執(zhí)行,又盡可能地減少了對(duì)用戶的影響。
綜上所述,本實(shí)施例所述的消息處理方法,可以通過(guò)在各個(gè)節(jié)點(diǎn)上插入探針的方式來(lái)收集各個(gè)節(jié)點(diǎn)上的消息收發(fā)數(shù)據(jù),然后根據(jù)收集的數(shù)據(jù)進(jìn)行統(tǒng)一的分析處理,可以及時(shí)發(fā)現(xiàn)消息收發(fā)過(guò)程中出現(xiàn)的消息遺漏和/或丟失情況,并及時(shí)根據(jù)預(yù)置規(guī)則采取相應(yīng)的補(bǔ)救措施,保證了處理效率,縮短了處理周期,有效避免了消息遺漏和/或丟失情況對(duì)系統(tǒng)和正常業(yè)務(wù)的影響。
其次,在本實(shí)施例中,可以在確定存在消息丟失的節(jié)點(diǎn)的通信協(xié)議之后,根據(jù)所述確定的通信協(xié)議對(duì)所述丟失的消息進(jìn)行重打包,并將重打包的所述丟失的消息發(fā)送給所述存在消息丟失的節(jié)點(diǎn)??梢?jiàn),在本實(shí)施例中,通過(guò)對(duì)通信協(xié)議的轉(zhuǎn)換,可以使本實(shí)施例所述的方法適用于不同的系統(tǒng)或者節(jié)點(diǎn),保證了本實(shí)施例所述的消息處理方法的通用性以及對(duì)異構(gòu)系統(tǒng)的適配性。
進(jìn)一步地,本實(shí)施例所述的消息處理方法可以通過(guò)探針對(duì)信息進(jìn)行采集,保證了所述消息處理方法執(zhí)行過(guò)程中的獨(dú)立性:整個(gè)消息處理流程可以單獨(dú)執(zhí)行,不影響其他業(yè)務(wù)流程的正常執(zhí)行。同時(shí),本實(shí)施例所述的消息處理方法可以滿足不同的可插拔和定制化的應(yīng)用場(chǎng)景,而且,還可以根據(jù)需求進(jìn)行獨(dú)立擴(kuò)展。
此外,本實(shí)施例所述的消息處理方法集消息采集、消息判斷和消息恢復(fù)為一體,可以自動(dòng)的獨(dú)立完成對(duì)消息的監(jiān)測(cè)和自愈,無(wú)需人工干預(yù),也無(wú)需依賴(lài)當(dāng)前系統(tǒng)。而且,由于可實(shí)現(xiàn)對(duì)多個(gè)節(jié)點(diǎn)處的消息的采集,因此,本實(shí)施例所述的消息處理方法可以實(shí)現(xiàn)對(duì)與當(dāng)前系統(tǒng)有關(guān)聯(lián)的外部節(jié)點(diǎn)或者外部系統(tǒng)的分析,覆蓋面更廣,提高了處理結(jié)果的準(zhǔn)確性。
實(shí)施例三
參照上述實(shí)施例,本實(shí)施例結(jié)合一消息自愈裝置對(duì)所述消息處理方法進(jìn)行詳細(xì)說(shuō)明。
參照?qǐng)D3,示出了本發(fā)明實(shí)施例三中一種消息自愈裝置的結(jié)構(gòu)示意圖。在本實(shí)施例中,所述消息自愈裝置從邏輯上可以劃分為六個(gè)部分:中央處理單元302、規(guī)則管理器304、恢復(fù)自愈單元306、通知記錄器308、消息探針310、協(xié)議適配器312。
其中,
中央處理單元302,可以用于對(duì)所有消息進(jìn)行綜合統(tǒng)計(jì)分析、并做出判斷:如系統(tǒng)中消息在流轉(zhuǎn)中是否一致,有無(wú)在流轉(zhuǎn)路徑中的某個(gè)節(jié)點(diǎn)出現(xiàn)丟失,和,丟失的消息的具體內(nèi)容、流轉(zhuǎn)方向、時(shí)間;以及,可以根據(jù)規(guī)則管理器304中所制定的規(guī)則做出針對(duì)丟失的消息的處理:僅記錄、記錄并通知、進(jìn)行消息恢復(fù)自愈。
規(guī)則管理器304,可以用于存儲(chǔ)所述預(yù)置規(guī)則。其中,所述預(yù)置規(guī)則包括但不僅限于:記錄規(guī)則、記錄并通知規(guī)則以及消息恢復(fù)自愈規(guī)則。其中,為了提高處理效率,可以將“記錄規(guī)則”和“恢復(fù)自愈規(guī)則”設(shè)置為默認(rèn)規(guī)則。此外,規(guī)則管理器304可以包括:提供給業(yè)務(wù)系統(tǒng)的管理接口,所述管理接口可以作為業(yè)務(wù)系統(tǒng)或節(jié)點(diǎn)使用所述消息自愈裝置的入口,通過(guò)所述管理接口可以實(shí)現(xiàn)對(duì)各節(jié)點(diǎn)的探測(cè),和/或子系統(tǒng)的告警收發(fā)。
恢復(fù)自愈單元306,可以用于將丟失的消息按照消息的流轉(zhuǎn)方向發(fā)送給指定的節(jié)點(diǎn)或者系統(tǒng)。其中,所述恢復(fù)自愈單元306可以在“消息恢復(fù)自愈”規(guī)則被觸發(fā)后執(zhí)行。
通知記錄器308,可以用于統(tǒng)計(jì)節(jié)點(diǎn)的收發(fā)信息,以及對(duì)告警消息內(nèi)容進(jìn)行內(nèi)部存儲(chǔ)和管理;同時(shí)還可以用于向外部被偵測(cè)節(jié)點(diǎn)發(fā)送通知或者是恢復(fù)消息;以及,在通過(guò)協(xié)議適配器312完成對(duì)消息或者協(xié)議的適配。
消息探針310,可以與協(xié)議適配器312一起共同作用,實(shí)現(xiàn)探測(cè)采集各節(jié)點(diǎn)的收發(fā)消息的功能。
協(xié)議適配器312,可以用于為消息探針310、通知記錄器308提供不同 的協(xié)議和消息探測(cè)途徑。
在本實(shí)施例中,外部系統(tǒng)可以通過(guò)規(guī)則管理器304注冊(cè)到本實(shí)施例所述的消息自愈裝置中。中央處理單元302可以根據(jù)注冊(cè)信息組織并下發(fā)指令給消息探針310,消息探針310在接收到指令后,在指定節(jié)點(diǎn)位置處對(duì)節(jié)點(diǎn)處的收發(fā)消息進(jìn)行采集,以及,為了避免消息過(guò)濾過(guò)程中可能存在的傳輸延時(shí),可以在指定時(shí)間內(nèi)將采集到的各個(gè)節(jié)點(diǎn)的收發(fā)消息上報(bào)給所述中央處理單元302。中央處理單元302在收集完所有節(jié)點(diǎn)的收發(fā)消息后,可以開(kāi)始對(duì)收集的所有節(jié)點(diǎn)的收發(fā)消息進(jìn)行分析并形成最終結(jié)果,然后通過(guò)通知記錄器308進(jìn)行記錄,最后按照規(guī)則管理器304中的預(yù)置處理規(guī)則進(jìn)行恢復(fù)通知或者其它后處理動(dòng)作。
需要說(shuō)明的是,規(guī)則管理器304中保存的注冊(cè)信息可以如下表1所示:
表1:注冊(cè)信息示意表
當(dāng)然,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)明了的是,注冊(cè)信息包括但不僅限于上述表1中記載的信息,可以根據(jù)實(shí)際情況選擇多個(gè)信息進(jìn)行記錄,本實(shí)施例對(duì)此不作限制。
在本實(shí)施例中,參照?qǐng)D4,示出了本發(fā)明實(shí)施例三中一種消息自愈裝置的執(zhí)行流程示意圖。所述消息自愈裝置的具體執(zhí)行流程可以如下:
步驟402,各個(gè)節(jié)點(diǎn)處的收發(fā)消息通過(guò)消息探針上報(bào)給中央處理單元。
在本實(shí)施例中,消息探針可以有多個(gè),消息1可以是來(lái)自多個(gè)節(jié)點(diǎn)或者多個(gè)子系統(tǒng)的多個(gè)消息。
具體地,參照?qǐng)D5,示出了本發(fā)明實(shí)施例三中一種消息探測(cè)的示意圖。在本實(shí)施例中,可以通過(guò)消息探針和協(xié)議適配器的協(xié)同作用獲取節(jié)點(diǎn)處的收發(fā)消息:消息探針在對(duì)各節(jié)點(diǎn)(如圖5中的節(jié)點(diǎn)1和節(jié)點(diǎn)2)處的收發(fā)消息進(jìn)行檢測(cè)采集時(shí),協(xié)議適配器可以針對(duì)異構(gòu)的系統(tǒng)和協(xié)議體系進(jìn)行收發(fā)消息的適配和轉(zhuǎn)換,以滿足供所述消息自愈裝置內(nèi)部識(shí)別、分析和記錄等的要求。檢測(cè)采集動(dòng)作可以由消息探針完成,且可以是主動(dòng)的也可以是被動(dòng)的。其中,所述檢測(cè)采集動(dòng)作可以是一個(gè)異步過(guò)程,避免了對(duì)正常的業(yè)務(wù)處理的影響。
步驟404,通過(guò)中央處理單元對(duì)消息探針上報(bào)的各個(gè)節(jié)點(diǎn)處的收發(fā)消息進(jìn)行匯總分析,得出分析結(jié)論。
在本實(shí)施例中,匯總分析可以包括:對(duì)是否存消息丟失的判斷,以及,對(duì)丟失的消息的內(nèi)容的確定、位置的確定以及丟失時(shí)間的確定等。
在本實(shí)施例中,具體可以通過(guò)如下簡(jiǎn)單的線性方式對(duì)消息進(jìn)行匯總分析:
1.目標(biāo)消息為單條或者是單包;
2.起始節(jié)點(diǎn)唯一:起點(diǎn)s;
3.終止節(jié)點(diǎn)唯一:終點(diǎn)t;
4.起點(diǎn)s到終點(diǎn)t的過(guò)程路徑上包含1·····n個(gè)中間節(jié)點(diǎn)(a1……an),其中,n為大于等于1的整數(shù)。
判斷消息是否存在丟失:起點(diǎn)s處存在消息a;終點(diǎn)t處不存在消息a,則確定消息在傳遞過(guò)程中出現(xiàn)了丟失或者不一致。
在確定存在消息丟失之后,還需要確定恢復(fù)點(diǎn)(恢復(fù)點(diǎn)也即丟失消息的節(jié)點(diǎn):在恢復(fù)點(diǎn)處存在消息a,在恢復(fù)點(diǎn)的下一節(jié)點(diǎn)處不存在消息a,整個(gè)路徑中包含m個(gè)節(jié)點(diǎn),不含起點(diǎn)s與終點(diǎn)t,m為大于等于1的整數(shù))。
優(yōu)選地,可以采用二分查找法確定恢復(fù)點(diǎn):
1.檢查m/2節(jié)點(diǎn)是否記錄到消息a,如果m/2節(jié)點(diǎn)記錄到則檢查m/2+1節(jié)點(diǎn)到終點(diǎn)t節(jié)點(diǎn)間的部分;如果m/2節(jié)點(diǎn)未記錄到消息a,則檢查m/2 節(jié)點(diǎn)到起點(diǎn)s節(jié)點(diǎn)間的部分。
2.按照以上方法最終獲得第一個(gè)未能記錄到消息a的節(jié)點(diǎn)sn以及其前一個(gè)節(jié)點(diǎn)sn-1。
步驟406,通過(guò)通知記錄器對(duì)各節(jié)點(diǎn)處的收發(fā)消息和所述分析結(jié)論進(jìn)行記錄保存。
步驟408,中央處理單元從規(guī)則管理器中獲取相應(yīng)的后處理規(guī)則。
步驟410,根據(jù)獲取的相應(yīng)的后處理規(guī)則進(jìn)行后處理。
在本實(shí)施例中,根據(jù)獲取的相應(yīng)的后處理規(guī)則進(jìn)行后處理具體可以包括:直接發(fā)送通知,和,可以通過(guò)恢復(fù)自愈單元并由通知記錄器進(jìn)行消息恢復(fù)自愈,本實(shí)施例對(duì)此不作限制。
其中,消息恢復(fù)自愈流程可以如下:恢復(fù)自愈單元從消息記錄器中獲取sn-1節(jié)點(diǎn)處對(duì)應(yīng)的消息的記錄內(nèi)容1,然后通過(guò)協(xié)議適配器將記錄內(nèi)容1重新打包后回發(fā)到sn節(jié)點(diǎn)。
綜上所述,本實(shí)施例所述的消息處理方法,可以通過(guò)在各個(gè)節(jié)點(diǎn)上插入探針的方式來(lái)收集各個(gè)節(jié)點(diǎn)上的消息收發(fā)數(shù)據(jù),然后根據(jù)收集的數(shù)據(jù)進(jìn)行統(tǒng)一的分析處理,可以及時(shí)發(fā)現(xiàn)消息收發(fā)過(guò)程中出現(xiàn)的消息遺漏和/或丟失情況,并及時(shí)根據(jù)預(yù)置規(guī)則采取相應(yīng)的補(bǔ)救措施,保證了處理效率,縮短了處理周期,有效避免了消息遺漏和/或丟失情況對(duì)系統(tǒng)和正常業(yè)務(wù)的影響。
其次,在本實(shí)施例中,可以在確定存在消息丟失的節(jié)點(diǎn)的通信協(xié)議之后,根據(jù)所述確定的通信協(xié)議對(duì)所述丟失的消息進(jìn)行重打包,并將重打包的所述丟失的消息發(fā)送給所述存在消息丟失的節(jié)點(diǎn)。可見(jiàn),在本實(shí)施例中,通過(guò)對(duì)通信協(xié)議的轉(zhuǎn)換,可以使本實(shí)施例所述的方法適用于不同的系統(tǒng)或者節(jié)點(diǎn),保證了本實(shí)施例所述的消息處理方法的通用性以及對(duì)異構(gòu)系統(tǒng)的適配性。
進(jìn)一步地,本實(shí)施例所述的消息處理方法可以通過(guò)探針對(duì)信息進(jìn)行采集,保證了所述消息處理方法執(zhí)行過(guò)程中的獨(dú)立性:整個(gè)消息處理流程可以單獨(dú)執(zhí)行,不影響其他業(yè)務(wù)流程的正常執(zhí)行。同時(shí),本實(shí)施例所述的消息處理方法可以滿足不同的可插拔和定制化的應(yīng)用場(chǎng)景,而且,還可以根據(jù)需求進(jìn)行獨(dú)立擴(kuò)展。
此外,本實(shí)施例所述的消息處理方法集消息采集、消息判斷和消息恢復(fù) 為一體,可以自動(dòng)的獨(dú)立完成對(duì)消息的監(jiān)測(cè)和自愈,無(wú)需人工干預(yù),也無(wú)需依賴(lài)當(dāng)前系統(tǒng)。而且,由于可實(shí)現(xiàn)對(duì)多個(gè)節(jié)點(diǎn)處的消息的采集,因此,本實(shí)施例所述的消息處理方法可以實(shí)現(xiàn)對(duì)與當(dāng)前系統(tǒng)有關(guān)聯(lián)的外部節(jié)點(diǎn)或者外部系統(tǒng)的分析,覆蓋面更廣,提高了處理結(jié)果的準(zhǔn)確性。
需要說(shuō)明的是,對(duì)于前述的方法實(shí)施例,為了簡(jiǎn)單描述,故將其都表述為一系列的動(dòng)作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明并不受所描述的動(dòng)作順序的限制,因?yàn)橐罁?jù)本發(fā)明,某些步驟可以采用其他順序或者同時(shí)進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說(shuō)明書(shū)中所描述的實(shí)施例均屬于優(yōu)選實(shí)施例,所涉及的動(dòng)作并不一定是本發(fā)明所必需的。
實(shí)施例四
基于與上述方法實(shí)施例同一發(fā)明構(gòu)思,參照?qǐng)D6,示出了本發(fā)明實(shí)施例四中一種消息處理裝置的結(jié)構(gòu)框圖。在本實(shí)施例中,所述消息處理裝置包括:
采集模塊602,用于對(duì)至少一個(gè)節(jié)點(diǎn)上的收發(fā)消息進(jìn)行采集。
在本實(shí)施例中,所述至少一個(gè)節(jié)點(diǎn)根據(jù)業(yè)務(wù)類(lèi)型確定。
判斷模塊604,用于根據(jù)采集得到的各個(gè)節(jié)點(diǎn)上的收發(fā)消息,判斷隸屬于同一矢量方向上的節(jié)點(diǎn)中是否存在消息丟失。
確定模塊606,用于在存在消息丟失時(shí),確定丟失的消息。
處理模塊608,用于根據(jù)預(yù)置規(guī)則對(duì)所述丟失的消息進(jìn)行處理。
可見(jiàn),本實(shí)施例所述的消息處理裝置可以根據(jù)實(shí)時(shí)采集的數(shù)據(jù)信息,及時(shí)發(fā)現(xiàn)消息收發(fā)過(guò)程中出現(xiàn)的消息遺漏和/或丟失情況,并可以即時(shí)完成對(duì)遺漏和/或丟失的消息的處理,保證了處理效率,縮短了處理周期,有效避免了消息遺漏和/或丟失情況對(duì)系統(tǒng)和正常業(yè)務(wù)的影響。
參照?qǐng)D7,示出了本發(fā)明實(shí)施例四中一種優(yōu)選的消息處理裝置的結(jié)構(gòu)示意圖。其中,
優(yōu)選的,所述判斷模塊604具體可以包括:確定子模塊6042,用于確定同一矢量方向上的起始節(jié)點(diǎn)和終止節(jié)點(diǎn);獲取子模塊6044,用于分別獲取所述起始節(jié)點(diǎn)上的第一收發(fā)消息和所述終止節(jié)點(diǎn)上的第二收發(fā)消息;判斷子模塊6046,用于根據(jù)所述第一收發(fā)消息和所述第二收發(fā)消息判斷隸屬于同一矢 量方向上的節(jié)點(diǎn)中是否存在消息丟失。
優(yōu)選的,所述確定模塊606具體可以包括:節(jié)點(diǎn)確定子模塊6062,用于在存在消息丟失時(shí),確定存在消息丟失的節(jié)點(diǎn);消息獲取子模塊6064,用于獲取所述存在消息丟失的節(jié)點(diǎn)的上一級(jí)節(jié)點(diǎn)上的收發(fā)消息;消息確定子模塊6066,用于將所述獲取的收發(fā)消息確定為所述丟失的消息。
優(yōu)選的,所述消息處理裝置還可以包括:接收模塊610,用于通過(guò)設(shè)定接口獲取各個(gè)節(jié)點(diǎn)的注冊(cè)信息;其中,所述注冊(cè)信息至少包括:消息源標(biāo)識(shí)、本節(jié)點(diǎn)標(biāo)識(shí)、消息目的標(biāo)識(shí)、消息特征標(biāo)識(shí)和所述預(yù)置規(guī)則。
在本實(shí)施例中,所述處理模塊608,具體可以用于將所述丟失的消息發(fā)送給存在消息丟失的節(jié)點(diǎn),以實(shí)現(xiàn)消息的恢復(fù)自愈。
一優(yōu)選的,所述處理模塊608具體可以包括:協(xié)議確定子模塊6082,用于確定所述存在消息丟失的節(jié)點(diǎn)的通信協(xié)議;重打包子模塊6084,用于根據(jù)所述確定的通信協(xié)議對(duì)所述丟失的消息進(jìn)行重打包;第一發(fā)送子模塊6086,用于將重打包的所述丟失的消息發(fā)送給所述存在消息丟失的節(jié)點(diǎn)。
另一優(yōu)選的,所述處理模塊608具體可以包括:注冊(cè)信息獲取子模塊6088,用于獲取存在消息丟失的節(jié)點(diǎn)的注冊(cè)信息;第二發(fā)送子模塊60810,用于根據(jù)所述存在消息丟失的節(jié)點(diǎn)的注冊(cè)信息,將所述丟失的消息發(fā)送給存在消息丟失的節(jié)點(diǎn)。
綜上所述,本實(shí)施例所述的消息處理裝置,可以通過(guò)在各個(gè)節(jié)點(diǎn)上插入探針的方式來(lái)收集各個(gè)節(jié)點(diǎn)上的消息收發(fā)數(shù)據(jù),然后根據(jù)收集的數(shù)據(jù)進(jìn)行統(tǒng)一的分析處理,可以及時(shí)發(fā)現(xiàn)消息收發(fā)過(guò)程中出現(xiàn)的消息遺漏和/或丟失情況,并及時(shí)根據(jù)預(yù)置規(guī)則采取相應(yīng)的補(bǔ)救措施,保證了處理效率,縮短了處理周期,有效避免了消息遺漏和/或丟失情況對(duì)系統(tǒng)和正常業(yè)務(wù)的影響。
其次,在本實(shí)施例中,可以在確定存在消息丟失的節(jié)點(diǎn)的通信協(xié)議之后,根據(jù)所述確定的通信協(xié)議對(duì)所述丟失的消息進(jìn)行重打包,并將重打包的所述丟失的消息發(fā)送給所述存在消息丟失的節(jié)點(diǎn)??梢?jiàn),在本實(shí)施例中,通過(guò)對(duì)通信協(xié)議的轉(zhuǎn)換,可以使本實(shí)施例所述的裝置適用于不同的系統(tǒng)或者節(jié)點(diǎn),保證了本實(shí)施例所述的消息處理裝置的通用性以及對(duì)異構(gòu)系統(tǒng)的適配性。
進(jìn)一步地,本實(shí)施例所述的消息處理裝置可以通過(guò)探針對(duì)信息進(jìn)行采 集,保證了所述消息處理裝置在執(zhí)行過(guò)程中的獨(dú)立性:整個(gè)消息處理流程可以單獨(dú)執(zhí)行,不影響其他業(yè)務(wù)流程的正常執(zhí)行。同時(shí),本實(shí)施例所述的消息處理裝置可以滿足不同的可插拔和定制化的應(yīng)用場(chǎng)景,而且,還可以根據(jù)需求進(jìn)行獨(dú)立擴(kuò)展。
此外,本實(shí)施例所述的消息處理裝置集消息采集、消息判斷和消息恢復(fù)為一體,可以自動(dòng)的獨(dú)立完成對(duì)消息的監(jiān)測(cè)和自愈,無(wú)需人工干預(yù),也無(wú)需依賴(lài)當(dāng)前系統(tǒng)。而且,由于可實(shí)現(xiàn)對(duì)多個(gè)節(jié)點(diǎn)處的消息的采集,因此,本實(shí)施例所述的消息處理裝置可以實(shí)現(xiàn)對(duì)與當(dāng)前系統(tǒng)有關(guān)聯(lián)的外部節(jié)點(diǎn)或者外部系統(tǒng)的分析,覆蓋面更廣,提高了處理結(jié)果的準(zhǔn)確性。
對(duì)于裝置實(shí)施例而言,由于其與方法實(shí)施例基本相似,所以描述的比較簡(jiǎn)單,相關(guān)之處參見(jiàn)方法實(shí)施例的部分說(shuō)明即可。
本說(shuō)明書(shū)中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說(shuō)明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似的部分互相參見(jiàn)即可。
以上對(duì)本發(fā)明所提供的一種消息處理方法和裝置進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說(shuō)明只是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實(shí)施方式及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說(shuō)明書(shū)內(nèi)容不應(yīng)理解為對(duì)本發(fā)明的限制。