本發(fā)明涉及計(jì)算機(jī)消息隊(duì)列技術(shù)領(lǐng)域,具體地說(shuō)是一種可擴(kuò)展的消息路由實(shí)現(xiàn)方法。
背景技術(shù):
在計(jì)算機(jī)應(yīng)用信息系統(tǒng)領(lǐng)域,為了減少應(yīng)用系統(tǒng)間或者功能模塊間的耦合度,提高信息系統(tǒng)的架構(gòu)靈活性,大多數(shù)信息系統(tǒng)使用消息隊(duì)列技術(shù)實(shí)現(xiàn)應(yīng)用系統(tǒng)間或者功能模塊間的通信。但是現(xiàn)有的消息發(fā)送技術(shù),同種信息的發(fā)送大都通過(guò)一個(gè)消息通道實(shí)現(xiàn)消息發(fā)送,這種消息發(fā)送方式,發(fā)送效率較低,并且不能充分使用消息隊(duì)列服務(wù)的資源。
基于此,現(xiàn)提供一種可擴(kuò)展的消息路由實(shí)現(xiàn)方法,按照消息維度和消息通道之間的路由關(guān)系實(shí)現(xiàn)數(shù)據(jù)發(fā)送,通過(guò)不同維度的消息按照不同的消息通道進(jìn)行并行傳輸,提升消息的發(fā)送效率。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的技術(shù)任務(wù)是針對(duì)以上不足之處,提供一種可擴(kuò)展的消息路由實(shí)現(xiàn)方法。
一種可擴(kuò)展的消息路由實(shí)現(xiàn)方法,首先提供可擴(kuò)展的消息維度,通過(guò)配置消息維度與消息通道的路由關(guān)系,實(shí)現(xiàn)按照路由關(guān)系進(jìn)行消息的發(fā)送,基于此,其具體實(shí)現(xiàn)過(guò)程為:
首先進(jìn)行消息維度的創(chuàng)建;
然后進(jìn)行消息通道的創(chuàng)建;
配置消息維度與消息通道的路由規(guī)則;
進(jìn)行消息維度與消息通道的路由規(guī)則的有效性驗(yàn)證;
最后按照路由規(guī)則進(jìn)行發(fā)送消息。
在創(chuàng)建消息維度的過(guò)程中,每個(gè)消息維度包含一個(gè)或多個(gè)維度類(lèi)型。
在消息通道的創(chuàng)建過(guò)程中,每個(gè)消息通道的名稱(chēng)是唯一的,其中,消息通道是指能夠承載消息,在一定觸發(fā)條件下通過(guò)提醒將消息從一方傳遞到另一方的通道。
所述消息維度與消息通道的路由規(guī)則配置是指:一組消息維度實(shí)例對(duì)應(yīng)一個(gè)消息通道,而一個(gè)消息通道對(duì)應(yīng)一個(gè)或者多個(gè)消息維度;對(duì)未設(shè)定路由關(guān)系的消息通道,按照Default,即缺省關(guān)系執(zhí)行。
所述的消息維度與消息通道的路由規(guī)則有效性驗(yàn)證步驟中,其驗(yàn)證內(nèi)容包括:
1)消息通道是否存在;
2)消息維度是否存在;
3)一個(gè)消息維度是否只有一個(gè)消息通道與其對(duì)應(yīng)。
所述按照路由規(guī)則進(jìn)行消息發(fā)送,是指根據(jù)消息維度和消息通道的路由規(guī)則來(lái)確定消息通道,并通過(guò)該消息通道發(fā)送消息。
本發(fā)明的一種可擴(kuò)展的消息路由實(shí)現(xiàn)方法和現(xiàn)有技術(shù)相比,具有以下有益效果:
本發(fā)明的一種可擴(kuò)展的消息路由實(shí)現(xiàn)方法,具有消息維度可擴(kuò)展、消息發(fā)送效率高等優(yōu)點(diǎn),通過(guò)消息維度與消息通道的路由規(guī)則,使消息生產(chǎn)者能夠按照多組維度對(duì)應(yīng)的消息通道進(jìn)行并行發(fā)送,大大提升的消息傳輸?shù)男?;并且該方法?shí)現(xiàn)簡(jiǎn)單,通用性較強(qiáng),實(shí)用性強(qiáng),適用范圍廣泛,具有很好的推廣應(yīng)用價(jià)值。
附圖說(shuō)明
附圖1為本發(fā)明的實(shí)現(xiàn)流程圖。
附圖2為本發(fā)明中具體實(shí)施例示意圖。
具體實(shí)施方式
下面結(jié)合附圖及具體實(shí)施例對(duì)本發(fā)明作進(jìn)一步說(shuō)明。
如附圖1所示,本發(fā)明提供了一種可擴(kuò)展的消息路由實(shí)現(xiàn)方法,本發(fā)明通過(guò)提供可擴(kuò)展的消息維度,并通過(guò)配置消息維度與消息通道的路由關(guān)系,實(shí)現(xiàn)按照路由關(guān)系,進(jìn)行消息的發(fā)送。
本發(fā)明具體包括如下步驟:
S10:消息維度的創(chuàng)建;
S11:消息通道的創(chuàng)建;
S12:消息維度與消息通道的路由規(guī)則配置;
S13: 消息維度與消息通道的路由規(guī)則的有效性驗(yàn)證;
S14: 按照路由規(guī)則進(jìn)行發(fā)送消息。
在步驟S10中所述的消息維度的創(chuàng)建,每個(gè)消息維度可包含一個(gè)或多個(gè)維度類(lèi)型,支持?jǐn)U展多個(gè)維度類(lèi)型。
在步驟S11中所述的消息通道的創(chuàng)建,每個(gè)消息通道的名稱(chēng)都要求唯一;所謂消息通道,指能夠承載消息,在某種觸發(fā)條件下,借助某種提醒方式將消息從一方傳遞到另一方的通道。
在步驟S12中所述的消息維度與消息通道的路由規(guī)則配置,一組消息維度實(shí)例能且只能對(duì)應(yīng)一個(gè)消息通道,而一個(gè)消息通道可對(duì)應(yīng)一個(gè)或者多個(gè)消息維度;對(duì)未設(shè)定路由關(guān)系的消息通道,按照Default(即缺省)關(guān)系執(zhí)行。
在步驟S13中所述的消息維度與消息通道的路由規(guī)則的有效性驗(yàn)證,其驗(yàn)證內(nèi)容包括如下:
(1)消息通道必須存在;
(2)消息維度必須存在;
(3)一個(gè)消息維度有且只能有一個(gè)消息通道與其對(duì)應(yīng)。
在步驟S14中所述的按照路由規(guī)則進(jìn)行消息發(fā)送,根據(jù)消息維度和消息通道的路由規(guī)則來(lái)確定消息通道,并通過(guò)該消息通道發(fā)送消息。
實(shí)例說(shuō)明:某集團(tuán)財(cái)務(wù)公司,為實(shí)現(xiàn)提供財(cái)務(wù)報(bào)表,需要將財(cái)務(wù)憑證進(jìn)行實(shí)時(shí)記賬;由于集團(tuán)的核算單位較多,且業(yè)務(wù)量龐大,為提升記賬效率,采用消息路由機(jī)制,實(shí)現(xiàn)憑證與賬本之間的通信。
整體流程圖參照附圖1。
第1步,創(chuàng)建消息維度,如附圖2所示,包括兩個(gè)消息維度,分別為憑證類(lèi)型、核算單位。
第2步,創(chuàng)建消息通道,如附圖2所示,包括四個(gè)消息通道,分別為Queue1、Queue2、Queue3、Queue4。
第3步,配置消息維度與消息通道之間的路由規(guī)則,如圖2所示的列表內(nèi)容。
第4步,校驗(yàn)路由規(guī)則,消息維度、消息通道不能為空,一組消息維度有且只有一個(gè)消息通道。
第5部,按照路由規(guī)則確定的消息通道進(jìn)行發(fā)送消息;單位01001、01002可通過(guò)其對(duì)應(yīng)的消息通道進(jìn)行并行發(fā)送消息。
通過(guò)上面具體實(shí)施方式,所述技術(shù)領(lǐng)域的技術(shù)人員可容易的實(shí)現(xiàn)本發(fā)明。但是應(yīng)當(dāng)理解,本發(fā)明并不限于上述的具體實(shí)施方式。在公開(kāi)的實(shí)施方式的基礎(chǔ)上,所述技術(shù)領(lǐng)域的技術(shù)人員可任意組合不同的技術(shù)特征,從而實(shí)現(xiàn)不同的技術(shù)方案。
除說(shuō)明書(shū)所述的技術(shù)特征外,均為本專(zhuān)業(yè)技術(shù)人員的已知技術(shù)。