本發(fā)明涉及消息處理技術(shù)領(lǐng)域,尤其涉及一種消息處理方法、裝置、控制器及系統(tǒng)。
背景技術(shù):
不同消息系統(tǒng)間的消息處理和轉(zhuǎn)發(fā)可通過消息中間件實(shí)現(xiàn)。通過消息中間件進(jìn)行消息處理,實(shí)際是對(duì)消息進(jìn)行直存直取,也就是每從消息源系統(tǒng)接收到一個(gè)消息便將其轉(zhuǎn)發(fā)至對(duì)應(yīng)的目標(biāo)消息系統(tǒng)中。
然而不同目標(biāo)消息系統(tǒng)需實(shí)現(xiàn)不同的業(yè)務(wù)功能,僅采用消息中間件,便難以實(shí)現(xiàn)對(duì)多種目標(biāo)消息系統(tǒng)對(duì)應(yīng)的業(yè)務(wù)需求。為實(shí)現(xiàn)滿足不同的業(yè)務(wù)需求,可通過集中式消息服務(wù)實(shí)現(xiàn)消息的統(tǒng)一處理和轉(zhuǎn)發(fā),通過定義多種不同業(yè)務(wù)對(duì)應(yīng)的規(guī)則執(zhí)行。在該集中式消息服務(wù)處理過程中,每條消息需經(jīng)過所有業(yè)務(wù)對(duì)應(yīng)的規(guī)則。
隨著應(yīng)用數(shù)量的線性增長(zhǎng),針對(duì)各應(yīng)用的消息量也大量增加,通過集中式消息服務(wù)進(jìn)行消息處理的性能難以得到有效提高,從而使得消息處理的復(fù)雜度較高。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供一種消息處理方法、裝置、控制器及系統(tǒng),以降低消息處理的復(fù)雜度。
本發(fā)明提供一種消息處理方法,包括:
接收消息源系統(tǒng)發(fā)送的源消息;
從預(yù)設(shè)的消息隊(duì)列集群中確定所述源消息對(duì)應(yīng)的第一類規(guī)則隊(duì)列;
根據(jù)所述源消息對(duì)應(yīng)的第一類規(guī)則隊(duì)列中的至少一個(gè)第一類規(guī)則依次對(duì)所述源消息進(jìn)行處理;
從所述消息隊(duì)列集群中確定所述處理后的消息對(duì)應(yīng)的第二類規(guī)則隊(duì)列;所述第一類規(guī)則隊(duì)列和所述第二規(guī)則隊(duì)列為不同類型的規(guī)則隊(duì)列;
根據(jù)所述處理后的消息對(duì)應(yīng)的第二類規(guī)則隊(duì)列中的至少一個(gè)第二類規(guī)則依次對(duì)所述處理后的消息進(jìn)行處理,得到目標(biāo)消息;
將所述目標(biāo)消息發(fā)送至消息目標(biāo)系統(tǒng)。
本發(fā)明還提供一種消息處理裝置,包括:
接收模塊,用于接收消息源系統(tǒng)發(fā)送的源消息;
第一確定模塊,用于從預(yù)設(shè)的消息隊(duì)列集群中確定所述源消息對(duì)應(yīng)的第一類規(guī)則隊(duì)列;
第一處理模塊,用于根據(jù)所述源消息對(duì)應(yīng)的第一類規(guī)則隊(duì)列中的至少一個(gè)第一類規(guī)則依次對(duì)所述源消息進(jìn)行處理;
第二確定模塊,用于從所述消息隊(duì)列集群中確定所述處理后的消息對(duì)應(yīng)的第二類規(guī)則隊(duì)列;
第二處理模塊,用于根據(jù)所述處理后的消息對(duì)應(yīng)的第二類規(guī)則隊(duì)列中的至少一個(gè)第二類規(guī)則依次對(duì)所述處理后的消息進(jìn)行處理,得到目標(biāo)消息;
發(fā)送模塊,用于將所述目標(biāo)消息發(fā)送至消息目標(biāo)系統(tǒng)。
本發(fā)明還提供一種控制器,包括:存儲(chǔ)器和處理器;所述存儲(chǔ)器與所述處理器連接;
所述存儲(chǔ)器用于存儲(chǔ)程序指令;
所述處理器,用于調(diào)度所述存儲(chǔ)器中的所述程序指令,用以執(zhí)行上述所述的消息處理方法。
本發(fā)明還提供一種消息處理系統(tǒng),包括:消息源系統(tǒng)、控制器和消息目標(biāo)系統(tǒng);其中,所述消息源系統(tǒng)與所述控制器連接,所述控制器還與所述消息目標(biāo)系統(tǒng)連接;
所述消息源系統(tǒng)用于向所述控制器發(fā)送源消息;
所述控制器,用于從預(yù)設(shè)的消息隊(duì)列集群中確定所述源消息對(duì)應(yīng)的第一類規(guī)則隊(duì)列;根據(jù)所述源消息對(duì)應(yīng)的場(chǎng)景規(guī)則隊(duì)列中的至少一個(gè)第一類規(guī)則依次對(duì)所述源消息進(jìn)行處理;從所述消息隊(duì)列集群中確定所述處理后的消息對(duì)應(yīng)的第二類規(guī)則隊(duì)列;根據(jù)所述處理后的消息對(duì)應(yīng)的第二類規(guī)則隊(duì)列中的至少一個(gè)第二類規(guī)則依次對(duì)所述處理后的消息進(jìn)行處理,得到目標(biāo)消息;并將所述目標(biāo)消息發(fā)送至消息目標(biāo)系統(tǒng)。
本發(fā)明提供的消息處理方法、裝置、控制器及系統(tǒng),可在接收到消息源系統(tǒng)發(fā)送的源消息后,可從預(yù)設(shè)的消息隊(duì)列集群中確定該源消息對(duì)應(yīng)的第一類規(guī)則隊(duì)列,并根據(jù)該源消息對(duì)應(yīng)的第一類規(guī)則隊(duì)列中的至少一個(gè)第一類規(guī)則依次對(duì)該源消息進(jìn)行處理;從該消息隊(duì)列集群中確定該處理后的消息對(duì)應(yīng)的第二類規(guī)則隊(duì)列,根據(jù)該處理后的消息對(duì)應(yīng)的第二類規(guī)則隊(duì)列中的至少一個(gè)第二類規(guī)則依次對(duì)該處理后的消息進(jìn)行處理,得到目標(biāo)消息;繼而將該目標(biāo)消息發(fā)送至消息目標(biāo)系統(tǒng)。該消息處理方法中,針對(duì)每個(gè)源消息,只需根據(jù)該源消息對(duì)應(yīng)的第一類規(guī)則隊(duì)列中的規(guī)則進(jìn)行處理,并根據(jù)確定的該處理后的消息對(duì)應(yīng)的第二類規(guī)則隊(duì)列中的規(guī)則進(jìn)行處理,而無需經(jīng)過所有的業(yè)務(wù)規(guī)則進(jìn)行處理,從而減小了消息處理的復(fù)雜度。
附圖說明
圖1為本發(fā)明的一種消息處理系統(tǒng)的結(jié)構(gòu)示意圖;
圖2為本發(fā)明提供的一種消息處理方法的流程圖;
圖3為本發(fā)明提供的一種消息處理方法的流程圖;
圖4為本發(fā)明提供的一種消息處理裝置的結(jié)構(gòu)示意圖;
圖5為本發(fā)明提供的一種控制器的結(jié)構(gòu)示意圖;
圖6為本發(fā)明提供的另一種消息處理系統(tǒng)的結(jié)構(gòu)圖。
具體實(shí)施方式
這里將詳細(xì)地對(duì)示例性實(shí)施例進(jìn)行說明,其示例表示在附圖中。下面的描述涉及附圖時(shí),除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實(shí)施例中所描述的實(shí)施方式并不代表與本發(fā)明相一致的所有實(shí)施方式。相反,它們僅是與如所附權(quán)利要求書中所詳述的、本發(fā)明的一些方面相一致的裝置和方法的例子。
本發(fā)明提供的各消息處理方法、裝置及控制器,可適用于消息處理系統(tǒng)中。該消息處理方法可根據(jù)確定的源消息對(duì)應(yīng)的第一類規(guī)則隊(duì)列中的至少一個(gè)第一類規(guī)則對(duì)該源消息進(jìn)行處理,并根據(jù)確定該處理后的消息對(duì)應(yīng)的第二類規(guī)則隊(duì)列中的至少一個(gè)第二類規(guī)則依次對(duì)該處理后的消息進(jìn)行處理得到目標(biāo)消息,繼而發(fā)送至消息目標(biāo)系統(tǒng),可使得該目標(biāo)消息既可實(shí)現(xiàn)該源消息對(duì)應(yīng)的第一類規(guī)則隊(duì)列所對(duì)應(yīng)的原子服務(wù),也可實(shí)現(xiàn)該處理后的消息對(duì)應(yīng)的跌類規(guī)則隊(duì)列所對(duì)應(yīng)的原子服務(wù)。也就是說,該消息處理系統(tǒng)既可實(shí)現(xiàn)第一類規(guī)則隊(duì)列對(duì)應(yīng)的原子服務(wù),也可實(shí)現(xiàn)第二類規(guī)則隊(duì)列對(duì)應(yīng)的原子服務(wù),因而該消息處理系統(tǒng)也可稱為分布式消息服務(wù)系統(tǒng)。其中,該第一類規(guī)則隊(duì)列可以為場(chǎng)景規(guī)則隊(duì)列,該第一類規(guī)則隊(duì)列包括包括的每個(gè)第一類規(guī)則為場(chǎng)景規(guī)則;該第二類規(guī)規(guī)則隊(duì)列為消費(fèi)規(guī)則隊(duì)列,該第二類規(guī)則隊(duì)列包括包括的每個(gè)第二類規(guī)則為消費(fèi)規(guī)則。
圖1為本發(fā)明的一種消息處理系統(tǒng)的結(jié)構(gòu)示意圖。如圖1所示,消息處理系統(tǒng)可包括:消息源系統(tǒng)101、控制器102、消息目標(biāo)系統(tǒng)103。消息源系統(tǒng)101可將源消息發(fā)送至控制器102中,控制器102可對(duì)該源消息進(jìn)行處理后得到目標(biāo)消息消息,將該目標(biāo)消息發(fā)送至消息目標(biāo)系統(tǒng)103。消息源系統(tǒng)101和消息目標(biāo)系統(tǒng)103中的傳輸?shù)拿總€(gè)消息均需經(jīng)過控制器102,由控制器進(jìn)行處理,因而,控制器102還可以稱為消息中心控制器。
其中,控制器102可存儲(chǔ)有預(yù)設(shè)的消息隊(duì)列集群,該消息隊(duì)列集群中包括至少一個(gè)第一類規(guī)則隊(duì)列,和,至少一個(gè)第二類規(guī)則隊(duì)列。該第一類規(guī)則隊(duì)列和該第二規(guī)則隊(duì)列分別為不同類型的規(guī)則隊(duì)列。其中,每個(gè)第一類規(guī)則隊(duì)列包括依次排列的至少一個(gè)第一類規(guī)則,每個(gè)第二類規(guī)則隊(duì)列包括依次排列的至少一個(gè)第二類規(guī)則。每一類規(guī)則隊(duì)列對(duì)應(yīng)一個(gè)服務(wù),無論是第一類規(guī)則隊(duì)列對(duì)應(yīng)的第一類服務(wù),還是第二類規(guī)則隊(duì)列對(duì)應(yīng)的第二類服務(wù),所有的服務(wù)均可注冊(cè)在該控制器102上,只有注冊(cè)在控制器102上的服務(wù)才可運(yùn)行。因此,控制器102可稱為所有服務(wù)的中央,控制器102可對(duì)所有服務(wù)的基本信息和運(yùn)行情況進(jìn)行統(tǒng)一監(jiān)控,實(shí)現(xiàn)合理的服務(wù)布局。需要說明的是,控制器102上注冊(cè)的每個(gè)服務(wù)可以為原子服務(wù)如分布式原子服務(wù)。
本發(fā)明提供的各消息處理方法可由圖1所示的控制器102執(zhí)行,控制器102在接收到消息源系統(tǒng)101發(fā)送的源消息后,可從預(yù)先存儲(chǔ)的消息隊(duì)列集群中確定該源消息對(duì)應(yīng)的第一類規(guī)則隊(duì)列,并根據(jù)該源消息對(duì)應(yīng)的第一類規(guī)則隊(duì)列中的至少一個(gè)第一類規(guī)則依次對(duì)該源消息進(jìn)行處理,實(shí)現(xiàn)該源消息對(duì)應(yīng)的第一類規(guī)則隊(duì)列所對(duì)應(yīng)的服務(wù)的運(yùn)行;還從該消息隊(duì)列集群中確定該處理后的消息對(duì)應(yīng)的第二類規(guī)則隊(duì)列;根據(jù)該處理后的消息對(duì)應(yīng)的第二類規(guī)則隊(duì)列中的至少一個(gè)第二類規(guī)則依次對(duì)該處理后的消息進(jìn)行處理,實(shí)現(xiàn)運(yùn)行該源消息對(duì)應(yīng)的第二類規(guī)則隊(duì)列所對(duì)應(yīng)的服務(wù)的運(yùn)行,得到目標(biāo)消息;繼而將該目標(biāo)消息發(fā)送至消息目標(biāo)系統(tǒng)。
該消息處理方法中,針對(duì)每個(gè)源消息,只需根據(jù)該源消息對(duì)應(yīng)的第一類規(guī)則隊(duì)列中的規(guī)則進(jìn)行處理,并根據(jù)確定的該處理后的消息對(duì)應(yīng)的第二類規(guī)則隊(duì)列中的規(guī)則進(jìn)行處理,而無需經(jīng)過所有的業(yè)務(wù)規(guī)則進(jìn)行處理,從而減小了消息處理的復(fù)雜度。
如下通過多個(gè)實(shí)例對(duì)本發(fā)明的消息處理方法進(jìn)行說明。
圖2為本發(fā)明提供的一種消息處理方法的流程圖。如圖2所示,該方法可包括:
S201、接收消息源系統(tǒng)發(fā)送的源消息。
S202、從預(yù)設(shè)的消息隊(duì)列集群中確定該源消息對(duì)應(yīng)的第一規(guī)則隊(duì)列。
具體地,該預(yù)設(shè)的消息隊(duì)列集群可以為控制器中所存儲(chǔ)的消息隊(duì)列集群。該消息隊(duì)列集群中包括至少一個(gè)第一類規(guī)則隊(duì)列,和,至少一個(gè)第二類規(guī)則隊(duì)列,因而,該消息隊(duì)列集群可以為消息的規(guī)則隊(duì)列集群。該S202中可以是根據(jù)該源消息,從該預(yù)設(shè)的消息隊(duì)列集群中的至少一個(gè)第一類規(guī)則隊(duì)列中確定該源消息對(duì)應(yīng)的第一類規(guī)則隊(duì)列??蛇x的,該第一類規(guī)規(guī)則隊(duì)列可以為場(chǎng)景規(guī)則隊(duì)列,該第一類規(guī)則隊(duì)列包括包括的每個(gè)第一類規(guī)則為場(chǎng)景規(guī)則。舉例來說,若第一類規(guī)則隊(duì)列為場(chǎng)景規(guī)則隊(duì)列,該消息隊(duì)列集群中可包括場(chǎng)景規(guī)則隊(duì)列1、場(chǎng)景規(guī)則隊(duì)列2……場(chǎng)景規(guī)則隊(duì)列N,通過執(zhí)行該S202中所確定該源消息對(duì)應(yīng)的第一類規(guī)則隊(duì)列可以為場(chǎng)景規(guī)則隊(duì)列2。
S203、根據(jù)該源消息對(duì)應(yīng)的第一類規(guī)則隊(duì)列中的至少一個(gè)第一類規(guī)則依次對(duì)該源消息進(jìn)行處理。
具體地,該S203中可以是采用該源消息對(duì)應(yīng)的第一類規(guī)則隊(duì)列的規(guī)則排列順序,根據(jù)該至少一個(gè)第一類規(guī)則依次對(duì)該源消息進(jìn)行處理,從而實(shí)現(xiàn)該源消息對(duì)應(yīng)的第一類規(guī)則隊(duì)列所對(duì)應(yīng)的服務(wù)。
需要說明的是,在執(zhí)行如上所述的S203中根據(jù)該源消息對(duì)應(yīng)的第一類規(guī)則隊(duì)列中的至少一個(gè)第一類規(guī)則依次對(duì)該源消息進(jìn)行處理之前,該方法還可包括:
判斷該源消息對(duì)應(yīng)的第一類規(guī)則隊(duì)列所對(duì)應(yīng)的服務(wù)是否已注冊(cè)。
若該源消息對(duì)應(yīng)的第一類規(guī)則隊(duì)列所對(duì)應(yīng)的服務(wù)已注冊(cè),則根據(jù)該源消息對(duì)應(yīng)的第一類規(guī)則隊(duì)列中的至少一個(gè)第一類規(guī)則依次對(duì)該源消息進(jìn)行處理;反之,若該源消息對(duì)應(yīng)的第一類規(guī)則隊(duì)列所對(duì)應(yīng)的服務(wù)未注冊(cè),則無法根據(jù)第一類規(guī)則對(duì)該源消息進(jìn)行處理,并向消息源系統(tǒng)返回提示信息,以指示服務(wù)未注冊(cè),從而無法根據(jù)第一類規(guī)則進(jìn)行消息處理。
在一種可選的實(shí)例中,該方法中可以是通過檢測(cè)該源消息對(duì)應(yīng)的第一類規(guī)則隊(duì)列是否具有注冊(cè)標(biāo)識(shí),若是,則可確定該源消息對(duì)應(yīng)的第一類規(guī)則隊(duì)列所對(duì)應(yīng)的服務(wù)已注冊(cè);若否,則可確定該源消息對(duì)應(yīng)的第一類規(guī)則隊(duì)列所對(duì)應(yīng)的服務(wù)未被注冊(cè)。
在另一種可選的實(shí)例中,該方法中還可以是通過確定每個(gè)已注冊(cè)的服務(wù)所對(duì)應(yīng)的第一類規(guī)則隊(duì)列與該源消息對(duì)應(yīng)的第一類規(guī)則隊(duì)列是否一致。若已注冊(cè)服務(wù)中存在一個(gè)服務(wù),其對(duì)應(yīng)的第一類規(guī)則隊(duì)列與該源消息對(duì)應(yīng)的第一類規(guī)則隊(duì)列一致,則可確定該源消息對(duì)應(yīng)的第一類規(guī)則隊(duì)列所對(duì)應(yīng)的服務(wù)已注冊(cè);若每個(gè)已注冊(cè)的服務(wù)所對(duì)應(yīng)的第一類規(guī)則隊(duì)列與該源消息對(duì)應(yīng)的第一類規(guī)則隊(duì)列均不一致,則可確定該源消息對(duì)應(yīng)的第一類規(guī)則隊(duì)列所對(duì)應(yīng)的服務(wù)未被注冊(cè)。
舉例來說,若該源消息對(duì)應(yīng)的第一類規(guī)則隊(duì)列為場(chǎng)景規(guī)則隊(duì)列2,則該方法中可以是采用場(chǎng)景規(guī)則隊(duì)列2的規(guī)則排列順序,根據(jù)該場(chǎng)景規(guī)則隊(duì)列2中的至少一個(gè)場(chǎng)景規(guī)則依次對(duì)該源消息進(jìn)行處理,從而實(shí)現(xiàn)場(chǎng)景規(guī)則隊(duì)列2對(duì)應(yīng)的場(chǎng)景服務(wù)。為保證根據(jù)場(chǎng)景規(guī)則隊(duì)列2對(duì)該源消息處理,可實(shí)現(xiàn)對(duì)應(yīng)的服務(wù),使得控制器精確對(duì)所有服務(wù)的基本信息和運(yùn)行情況進(jìn)行統(tǒng)一監(jiān)控,實(shí)現(xiàn)合理的服務(wù)布局,該方法中需確定該場(chǎng)景規(guī)則隊(duì)列2對(duì)應(yīng)的服務(wù)是否注冊(cè),若是,則根據(jù)該場(chǎng)景規(guī)則隊(duì)列2中的至少一個(gè)場(chǎng)景規(guī)則依次對(duì)該源消息進(jìn)行處理。
S204、從該消息隊(duì)列集群中確定該處理后的消息對(duì)應(yīng)的第二類規(guī)則隊(duì)列。
具體地,該S204中可以是根據(jù)該處理后的消息,從該消息隊(duì)列集群中的至少一個(gè)第二類規(guī)則隊(duì)列中確定該處理后的消息對(duì)應(yīng)的第二類規(guī)則隊(duì)列??蛇x的,該第二類規(guī)規(guī)則隊(duì)列可以為消費(fèi)規(guī)則隊(duì)列,該第二類規(guī)則隊(duì)列包括包括的每個(gè)第二類規(guī)則為消費(fèi)規(guī)則。舉例來說,若第二類規(guī)則隊(duì)列為消費(fèi)規(guī)則隊(duì)列,該消息隊(duì)列集群中可包括消費(fèi)規(guī)則隊(duì)列1、消費(fèi)規(guī)則隊(duì)列2……消費(fèi)規(guī)則隊(duì)列N,通過執(zhí)行該S204中所確定該處理后的消費(fèi)規(guī)則隊(duì)列可以為消費(fèi)規(guī)則隊(duì)列3。
S205、根據(jù)該處理后的消息對(duì)應(yīng)的第二類規(guī)則隊(duì)列中的至少一個(gè)第二類規(guī)則依次對(duì)該處理后的消息進(jìn)行處理,得到目標(biāo)消息。
具體地,該S205中可以是采用該處理后的消息對(duì)應(yīng)的第二類規(guī)則隊(duì)列的規(guī)則排列順序,根據(jù)該至少一個(gè)第二類規(guī)則依次對(duì)該處理后的消息進(jìn)行處理,從而實(shí)現(xiàn)該處理后的消息對(duì)應(yīng)的第二類規(guī)則隊(duì)列所對(duì)應(yīng)的服務(wù)。
需要說明的是,在執(zhí)行如上所述的S205中根據(jù)該處理后的消息對(duì)應(yīng)的第二類規(guī)則隊(duì)列中的至少一個(gè)第二類規(guī)則依次對(duì)該處理后的消息進(jìn)行處理,得到目標(biāo)消息之前,該方法還可包括:
判斷該處理后的消息對(duì)應(yīng)的第二類規(guī)則隊(duì)列所對(duì)應(yīng)的服務(wù)是否已注冊(cè)。
若該處理后的消息對(duì)應(yīng)的第二類規(guī)則隊(duì)列所對(duì)應(yīng)的服務(wù)已注冊(cè),則根據(jù)該處理后的消息對(duì)應(yīng)的第二類規(guī)則隊(duì)列中的至少一個(gè)第二類規(guī)則依次對(duì)該處理后的消息進(jìn)行處理;反之,若該處理后的消息對(duì)應(yīng)的第二類規(guī)則隊(duì)列所對(duì)應(yīng)的服務(wù)未注冊(cè),則無法根據(jù)第二類規(guī)則對(duì)該處理后的消息進(jìn)行處理,并向消息源系統(tǒng)返回提示信息,以指示服務(wù)未注冊(cè),從而無法根據(jù)第二類規(guī)則進(jìn)行消息處理。
具體如何判斷該處理后的消息對(duì)應(yīng)的第二類規(guī)則隊(duì)列所對(duì)應(yīng)的服務(wù)是否已注冊(cè)的實(shí)現(xiàn)過程,與上述判斷該源消息對(duì)應(yīng)的第一類規(guī)則隊(duì)列所對(duì)應(yīng)的服務(wù)是否已注冊(cè)的實(shí)現(xiàn)過程類似,在此不再贅述。
舉例來說,若該處理后的消息對(duì)應(yīng)的第二類規(guī)則隊(duì)列為消費(fèi)規(guī)則隊(duì)列3,則該方法中可以是采用消費(fèi)規(guī)則隊(duì)列3的規(guī)則排列順序,根據(jù)該消費(fèi)規(guī)則隊(duì)列3中的至少一個(gè)消費(fèi)規(guī)則依次對(duì)該處理后的消息進(jìn)行處理,從而實(shí)現(xiàn)消費(fèi)規(guī)則隊(duì)列3對(duì)應(yīng)的消費(fèi)服務(wù)。為保證根據(jù)消費(fèi)規(guī)則隊(duì)列3對(duì)該處理后的消息處理,可實(shí)現(xiàn)對(duì)應(yīng)的服務(wù),使得控制器精確對(duì)所有服務(wù)的基本信息和運(yùn)行情況進(jìn)行統(tǒng)一監(jiān)控,實(shí)現(xiàn)合理的服務(wù)布局,該方法中需確定該消費(fèi)規(guī)則隊(duì)列3對(duì)應(yīng)的服務(wù)是否注冊(cè),若是,則根據(jù)該消費(fèi)規(guī)則隊(duì)列3中的至少一個(gè)消費(fèi)規(guī)則依次對(duì)該處理后的消息進(jìn)行處理。
S206、將該目標(biāo)消息發(fā)送至消息目標(biāo)系統(tǒng)。
本發(fā)明提供的消息處理方法,可在接收到消息源系統(tǒng)發(fā)送的源消息后,可從預(yù)設(shè)的消息隊(duì)列集群中確定該源消息對(duì)應(yīng)的第一類規(guī)則隊(duì)列,并根據(jù)該源消息對(duì)應(yīng)的第一類規(guī)則隊(duì)列中的至少一個(gè)第一類規(guī)則依次對(duì)該源消息進(jìn)行處理;從該消息隊(duì)列集群中確定該處理后的消息對(duì)應(yīng)的第二類規(guī)則隊(duì)列,根據(jù)該處理后的消息對(duì)應(yīng)的第二類規(guī)則隊(duì)列中的至少一個(gè)第二類規(guī)則依次對(duì)該處理后的消息進(jìn)行處理,得到目標(biāo)消息;繼而將該目標(biāo)消息發(fā)送至消息目標(biāo)系統(tǒng)。該消息處理方法中,針對(duì)每個(gè)源消息,只需根據(jù)該源消息對(duì)應(yīng)的第一類規(guī)則隊(duì)列中的規(guī)則進(jìn)行處理,并根據(jù)確定的該處理后的消息對(duì)應(yīng)的第二類規(guī)則隊(duì)列中的規(guī)則進(jìn)行處理,而無需經(jīng)過所有的業(yè)務(wù)規(guī)則進(jìn)行處理,從而減小了消息處理的復(fù)雜度。
由于該方法降低了針對(duì)每個(gè)源消息的處理復(fù)雜度,因而該方法還可有效保證隨著應(yīng)用數(shù)量的增長(zhǎng)帶來的消息量的增加情況下的消息處理性能。
該方法中,可通過一種類型的一個(gè)規(guī)則隊(duì)列對(duì)應(yīng)一個(gè)服務(wù),如原子服務(wù),可通過動(dòng)態(tài)配置規(guī)則隊(duì)列動(dòng)態(tài)擴(kuò)展對(duì)應(yīng)的服務(wù),實(shí)現(xiàn)消息服務(wù)的動(dòng)態(tài)擴(kuò)展。例如可服務(wù)的性能配置對(duì)應(yīng)的規(guī)則隊(duì)列,如對(duì)于處理時(shí)間短的消息服務(wù),可配置較少的原子服務(wù)個(gè)數(shù)保證性能;相反地,對(duì)于處理時(shí)間長(zhǎng)的消息服務(wù),可通過配置較多的原子服務(wù)個(gè)數(shù)保證性能。
由于該方法中,將不同類型的規(guī)則隊(duì)列獨(dú)立部署,實(shí)現(xiàn)不同的服務(wù),即采用了原子服務(wù)的分布式部署,即便某個(gè)規(guī)則隊(duì)列失效即某個(gè)規(guī)則對(duì)應(yīng)的原子服務(wù)失效,也不會(huì)響應(yīng)其它規(guī)則隊(duì)列,從而不會(huì)響應(yīng)整體服務(wù)的失效,保證了消息處理系統(tǒng)所提供的消息服務(wù)的健壯性。
可選的,如上所述的所述源消息包括:第一類型標(biāo)識(shí)(Identity,簡(jiǎn)稱ID);該預(yù)設(shè)的消息隊(duì)列集群包括:至少一個(gè)第一類規(guī)則隊(duì)列。如上所述的S202中從預(yù)設(shè)的消息隊(duì)列集群中確定該源消息對(duì)應(yīng)的第一規(guī)則隊(duì)列,可以包括:
根據(jù)該第一類型ID,從該至少一個(gè)第一類規(guī)則隊(duì)列中確定該源消息對(duì)應(yīng)的第一類規(guī)則隊(duì)列。
具體地,該方法中,可以是根據(jù)該第一類型ID,從至少一個(gè)第一類規(guī)則隊(duì)列中,確定該第一類型ID所對(duì)應(yīng)的規(guī)則隊(duì)列為該源消息對(duì)應(yīng)第一類規(guī)則隊(duì)列。該第一類型ID所對(duì)應(yīng)的規(guī)則隊(duì)列還可稱為該第一類型ID所定義的規(guī)則鏈。第一類型ID可以為場(chǎng)景ID,該第一類規(guī)則隊(duì)列可以為場(chǎng)景規(guī)則隊(duì)列。該方法中,根據(jù)該第一類型ID,確定該第一類型ID所對(duì)應(yīng)的規(guī)則隊(duì)列為該源消息對(duì)應(yīng)第一類規(guī)則隊(duì)列,提高了確定規(guī)則隊(duì)列的靈活性,從而提高消息處理的靈活性;該方法中僅可根據(jù)確定的該源消息對(duì)應(yīng)第一類規(guī)則隊(duì)列進(jìn)行消息處理,而無需根據(jù)其他第一類規(guī)則隊(duì)列進(jìn)行消息處理,因而,還降低針對(duì)不同規(guī)則隊(duì)列,即不同原子服務(wù)進(jìn)行消息處理的負(fù)載。
可選的,該處理后的消息包括:第二類型ID;該預(yù)設(shè)的消息隊(duì)列集群包括:至少一個(gè)第二類規(guī)則隊(duì)列。如上所述的S204中從該消息隊(duì)列集群中確定該處理后的消息對(duì)應(yīng)的第二類規(guī)則隊(duì)列,可包括:
根據(jù)該第二類型ID,從該至少一個(gè)第二類規(guī)則隊(duì)列中確定該源消息對(duì)應(yīng)的第二類規(guī)則隊(duì)列。
該方法中,可以是根據(jù)該第二類型ID,從至少一個(gè)第二類規(guī)則隊(duì)列中,確定該第二類型ID所對(duì)應(yīng)的規(guī)則隊(duì)列為該源消息對(duì)應(yīng)第二類規(guī)則隊(duì)列。該第二類型ID所對(duì)應(yīng)的規(guī)則隊(duì)列還可稱為該第二類型ID所定義的規(guī)則鏈。第二類型ID可以為消費(fèi)ID,該第二類規(guī)則隊(duì)列可以為消費(fèi)規(guī)則隊(duì)列。該方法中,根據(jù)該第二類型ID,確定該第二類型ID所對(duì)應(yīng)的規(guī)則隊(duì)列為該處理后的消息對(duì)應(yīng)第二類規(guī)則隊(duì)列,也可提高確定規(guī)則隊(duì)列的靈活性,從而提高消息處理的靈活性;該方法中僅可根據(jù)確定的該源消息對(duì)應(yīng)第二類規(guī)則隊(duì)列進(jìn)行消息處理,而無需根據(jù)其他第二類規(guī)則隊(duì)列進(jìn)行消息處理,因而,還降低針對(duì)不同規(guī)則隊(duì)列,即不同原子服務(wù)進(jìn)行消息處理的負(fù)載。
可選的,本發(fā)明還提供一種消息處理方法。圖3為本發(fā)明提供的一種消息處理方法的流程圖。如圖3所示,該方法可包括:
S301、接收消息源系統(tǒng)發(fā)送的源消息,該源消息可包括:場(chǎng)景ID和消費(fèi)ID。
S302、根據(jù)該場(chǎng)景ID,從預(yù)設(shè)的消息隊(duì)列集群中的至少一個(gè)場(chǎng)景規(guī)則隊(duì)列中,確定該場(chǎng)景ID對(duì)應(yīng)的場(chǎng)景規(guī)則隊(duì)列為該源消息對(duì)應(yīng)的場(chǎng)景規(guī)則隊(duì)列。
S303、根據(jù)該源消息對(duì)應(yīng)的場(chǎng)景規(guī)則隊(duì)列中的至少一個(gè)場(chǎng)景規(guī)則依次對(duì)該源消息進(jìn)行處理,得到處理后的消息,該處理后的消息包括該消費(fèi)ID。
S304、根據(jù)該消費(fèi)ID,從預(yù)設(shè)的消息隊(duì)列集群中的至少一個(gè)消費(fèi)規(guī)則隊(duì)列中,確定該消費(fèi)ID對(duì)應(yīng)的消費(fèi)規(guī)則隊(duì)列為該處理后的消息對(duì)應(yīng)的消費(fèi)規(guī)則隊(duì)列。
S305、根據(jù)該處理后的消息對(duì)應(yīng)的消費(fèi)規(guī)則隊(duì)列中的至少一個(gè)消費(fèi)規(guī)則依次對(duì)該處理后的消息進(jìn)行處理,得到目標(biāo)消息。
S306、將該目標(biāo)消息發(fā)送至消息目標(biāo)系統(tǒng)。
本發(fā)明提供的消息處理方法,可在接收到消息源系統(tǒng)發(fā)送的源消息后,可從預(yù)設(shè)的消息隊(duì)列集群中確定該源消息對(duì)應(yīng)的場(chǎng)景規(guī)則隊(duì)列,并根據(jù)該源消息對(duì)應(yīng)的場(chǎng)景規(guī)則隊(duì)列中的至少一個(gè)場(chǎng)景規(guī)則依次對(duì)該源消息進(jìn)行處理;從該消息隊(duì)列集群中確定該處理后的消息對(duì)應(yīng)的消費(fèi)規(guī)則隊(duì)列,根據(jù)該處理后的消息對(duì)應(yīng)的消費(fèi)規(guī)則隊(duì)列中的至少一個(gè)消費(fèi)規(guī)則依次對(duì)該處理后的消息進(jìn)行處理,得到目標(biāo)消息;繼而將該目標(biāo)消息發(fā)送至消息目標(biāo)系統(tǒng)。該消息處理方法中,針對(duì)每個(gè)源消息,只需根據(jù)該源消息對(duì)應(yīng)的場(chǎng)景規(guī)則隊(duì)列中的規(guī)則進(jìn)行處理,并根據(jù)確定的該處理后的消息對(duì)應(yīng)的消費(fèi)規(guī)則隊(duì)列中的規(guī)則進(jìn)行處理,而無需經(jīng)過所有的業(yè)務(wù)規(guī)則進(jìn)行處理,從而減小了消息處理的復(fù)雜度。
本發(fā)明還提供一種消息處理裝置。該消息處理裝置可通過軟件和/或硬件的方式實(shí)現(xiàn),用以執(zhí)行上述圖2或圖3中任一所述的消息處理方法。圖4為本發(fā)明提供的一種消息處理裝置的結(jié)構(gòu)示意圖。如圖4所示,該消息處理裝置400可包括:
接收模塊401,用于接收消息源系統(tǒng)發(fā)送的源消息。
第一確定模塊402,用于從預(yù)設(shè)的消息隊(duì)列集群中確定該源消息對(duì)應(yīng)的第一類規(guī)則隊(duì)列。
第一處理模塊403,用于根據(jù)該源消息對(duì)應(yīng)的第一類規(guī)則隊(duì)列中的至少一個(gè)第一類規(guī)則依次對(duì)該源消息進(jìn)行處理,
第二確定模塊404,用于從該消息隊(duì)列集群中確定該處理后的消息對(duì)應(yīng)的第二類規(guī)則隊(duì)列。
第二處理模塊405,用于根據(jù)該處理后的消息對(duì)應(yīng)的第二類規(guī)則隊(duì)列中的至少一個(gè)第二類規(guī)則依次對(duì)該處理后的消息進(jìn)行處理,得到目標(biāo)消息。
發(fā)送模塊406,用于將該目標(biāo)消息發(fā)送至消息目標(biāo)系統(tǒng)。
可選的,該源消息可包括:第一類型ID;該預(yù)設(shè)的消息隊(duì)列集群包括:至少一個(gè)第一類規(guī)則隊(duì)列。
第一確定模塊402,具體用于根據(jù)該第一類型ID,從該至少一個(gè)第一類規(guī)則隊(duì)列中確定該源消息對(duì)應(yīng)的第一類規(guī)則隊(duì)列。
可選的,該處理后的消息包括:第二類型ID;該預(yù)設(shè)的消息隊(duì)列集群包括:至少一個(gè)第二類規(guī)則隊(duì)列。
第二確定模塊404,具體用于根據(jù)該第二類型ID,從該至少一個(gè)第二類規(guī)則隊(duì)列中確定該源消息對(duì)應(yīng)的第二類規(guī)則隊(duì)列。
可選的,該第一類規(guī)規(guī)則隊(duì)列為場(chǎng)景規(guī)則隊(duì)列,該第一類規(guī)則為場(chǎng)景規(guī)則;
該第二類規(guī)規(guī)則隊(duì)列為消費(fèi)規(guī)則隊(duì)列,該第二類規(guī)則為消費(fèi)規(guī)則。
本發(fā)明所提供的消息處理裝置,可執(zhí)行上述圖2或圖3中任一所述的消息處理方法,其具體的實(shí)現(xiàn)過程及有益效果可參見上述,在此不再贅述。
本發(fā)明還提供一種控制器。該控制器中可集成有如上圖4所示的消息處理模塊,用以執(zhí)行上述圖2或圖3中任一所述的消息處理方法。圖5為本發(fā)明提供的一種控制器的結(jié)構(gòu)示意圖。如圖5所示,控制器500包括:存儲(chǔ)器501和處理器502;存儲(chǔ)器501與處理器502連接。
存儲(chǔ)器501用于存儲(chǔ)程序指令。
處理器502,用于調(diào)用存儲(chǔ)器501中的程序指令,用以執(zhí)行上述圖2或3項(xiàng)所述的消息處理方法。
本發(fā)明所提供的控制器,可執(zhí)行上述圖2或圖3中任一所述的消息處理方法,其具體的實(shí)現(xiàn)過程及有益效果可參見上述,在此不再贅述。
本發(fā)明還提供一種消息處理系統(tǒng)。圖6為本發(fā)明提供的另一種消息處理系統(tǒng)的結(jié)構(gòu)圖。如圖6所示,消息處理系統(tǒng)600,可包括:消息源系統(tǒng)601、控制器602和消息目標(biāo)系統(tǒng)603;其中,消息源系統(tǒng)601與控制器602連接,控制器602還與消息目標(biāo)系統(tǒng)603連接。
其中,消息源系統(tǒng)601用于向控制器602發(fā)送源消息。
控制器602,用于從預(yù)設(shè)的消息隊(duì)列集群中確定該源消息對(duì)應(yīng)的第一類規(guī)則隊(duì)列;根據(jù)該源消息對(duì)應(yīng)的場(chǎng)景規(guī)則隊(duì)列中的至少一個(gè)第一類規(guī)則依次對(duì)該源消息進(jìn)行處理;從該消息隊(duì)列集群中確定該處理后的消息對(duì)應(yīng)的第二類規(guī)則隊(duì)列;根據(jù)該處理后的消息對(duì)應(yīng)的第二類規(guī)則隊(duì)列中的至少一個(gè)第二類規(guī)則依次對(duì)該處理后的消息進(jìn)行處理,得到目標(biāo)消息;并將該目標(biāo)消息發(fā)送至消息目標(biāo)系統(tǒng)603。
可選的,該源消息包括:第一類型ID;該預(yù)設(shè)的消息隊(duì)列集群包括:至少一個(gè)第一類規(guī)則隊(duì)列。
控制器602,具體用于根據(jù)該第一類型ID,從該至少一個(gè)第一類規(guī)則隊(duì)列中確定該源消息對(duì)應(yīng)的第一類規(guī)則隊(duì)列。
可選的,該處理后的消息包括:第二類型ID;該預(yù)設(shè)的消息隊(duì)列集群包括:至少一個(gè)第二類規(guī)則隊(duì)列。
控制器602,具體用于根據(jù)該第二類型ID,從該至少一個(gè)第二類規(guī)則隊(duì)列中確定該源消息對(duì)應(yīng)的第二類規(guī)則隊(duì)列。
可選的,該第一類規(guī)規(guī)則隊(duì)列為場(chǎng)景規(guī)則隊(duì)列,該第一類規(guī)則為場(chǎng)景規(guī)則;該第二類規(guī)規(guī)則隊(duì)列為消費(fèi)規(guī)則隊(duì)列,該第二類規(guī)則為消費(fèi)規(guī)則。
本發(fā)明所提供的消息處理系統(tǒng),可執(zhí)行上述圖2或圖3中任一所述的消息處理方法,其具體的實(shí)現(xiàn)過程及有益效果可參見上述,在此不再贅述。
最后應(yīng)說明的是:以上各實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述各實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分或者全部技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的范圍。