一種消息同步方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種消息同步方法及裝置。
【背景技術(shù)】
[0002]隨著面向服務(wù)的體系結(jié)構(gòu)(Service-Oriented Architecture,S0A)理念和面向SOA分布式架構(gòu)模型逐步引入業(yè)務(wù)運(yùn)行支撐系統(tǒng)(Business support system,BSS)系統(tǒng)中,組網(wǎng)布局采用多機(jī)分布式,相同的應(yīng)用需要部署多臺(tái)主機(jī)上,且伴隨業(yè)務(wù)量的增加,需要隨時(shí)擴(kuò)展增加新的應(yīng)用,因此,需要保證所有應(yīng)用配置的同步一致性和完整性。
[0003]現(xiàn)有技術(shù)中,在當(dāng)前的BSS系統(tǒng)組網(wǎng)方案中,通常對(duì)同步信息采用集中管控,分布式緩存的網(wǎng)狀式布局,即中心控制點(diǎn)通過(guò)采用輪詢發(fā)送同步信息至每個(gè)主機(jī)的每個(gè)應(yīng)用保證同步的一致性;每個(gè)應(yīng)用將該同步信息進(jìn)行緩存,在完成緩存后,向該中心控制點(diǎn)發(fā)送接收確認(rèn)信息通知中心控制點(diǎn);中心控制點(diǎn)通過(guò)確認(rèn)接收到所有應(yīng)用發(fā)送的接收確認(rèn)信息來(lái)保證同步的完整性。
[0004]然而,在當(dāng)前的方案中,若增加新的應(yīng)用,則需要針對(duì)該新的應(yīng)用開發(fā)對(duì)應(yīng)的新的同步信息接收端,同時(shí)需要在中心控制點(diǎn)增加新的調(diào)用配置信息,便于中心控制點(diǎn)在輪詢同步時(shí),能夠?qū)⑼叫畔l(fā)送到各個(gè)應(yīng)用。因此,在新增應(yīng)用時(shí),增加了中心控制點(diǎn)的負(fù)載,限制了中心控制點(diǎn)的工作效率。
[0005]顯然,采用現(xiàn)有的方式進(jìn)行同步消息發(fā)送,完全依賴于中心控制點(diǎn)的主動(dòng)推送,中心控制點(diǎn)的負(fù)載較高,工作效率降低。
【發(fā)明內(nèi)容】
[0006]本發(fā)明實(shí)施例提供一種消息同步方法及裝置,用以解決現(xiàn)有技術(shù)中存在的完全依賴中心控制點(diǎn)的主動(dòng)推送完成消息同步,中心控制點(diǎn)的負(fù)載較高,工作效率降低的問(wèn)題。
[0007]本發(fā)明實(shí)施例提供的具體技術(shù)方案如下:
[0008]第一方面,一種消息同步方法,包括:
[0009]同步節(jié)點(diǎn)接收同步控制節(jié)點(diǎn)發(fā)送的同步消息;
[0010]所述同步節(jié)點(diǎn)基于所述同步消息生成對(duì)應(yīng)的消息操作命令和所述消息操作命令的命令標(biāo)識(shí),將所述消息操作命令和對(duì)應(yīng)的命令標(biāo)識(shí)保存至命令執(zhí)行文件;
[0011]其中,所述命令執(zhí)行文件用于所述同步節(jié)點(diǎn)對(duì)應(yīng)的應(yīng)用節(jié)點(diǎn)進(jìn)行內(nèi)存數(shù)據(jù)處理。
[0012]結(jié)合第一方面,在第一種可能的實(shí)現(xiàn)方式中,同步節(jié)點(diǎn)接收同步控制節(jié)點(diǎn)發(fā)送的同步消息,包括:
[0013]同步節(jié)點(diǎn)接收同步控制節(jié)點(diǎn)通過(guò)持久化消息總線Persist Message Bus發(fā)送的同步消息。
[0014]結(jié)合第一方面或第一方面的第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,所述同步節(jié)點(diǎn)接收同步控制節(jié)點(diǎn)發(fā)送的同步消息后,還包括:
[0015]所述同步節(jié)點(diǎn)將所述同步消息持久化保存。
[0016]結(jié)合第一方面或第一方面的以上任一種可能的實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中,將所述消息操作命令和對(duì)應(yīng)的命令標(biāo)識(shí)保存至命令執(zhí)行文件后,還包括:
[0017]向所述同步控制節(jié)點(diǎn)返回同步響應(yīng)消息。
[0018]第二方面,一種消息同步方法,包括:
[0019]應(yīng)用節(jié)點(diǎn)獲取命令執(zhí)行文件中的最新的消息操作命令對(duì)應(yīng)的命令標(biāo)識(shí);
[0020]應(yīng)用節(jié)點(diǎn)判斷所述最新的消息操作命令對(duì)應(yīng)的命令標(biāo)識(shí)是否與本地緩存的命令標(biāo)識(shí)不相同;并
[0021]確定所述最新的消息操作命令對(duì)應(yīng)的命令標(biāo)識(shí)與本地緩存的命令標(biāo)識(shí)不相同時(shí),獲取所述最新的消息操作命令;
[0022]應(yīng)用節(jié)點(diǎn)基于所述最新的消息操作命令對(duì)所述應(yīng)用節(jié)點(diǎn)的內(nèi)存進(jìn)行數(shù)據(jù)處理。
[0023]結(jié)合第二方面,在第一種可能的實(shí)現(xiàn)方式中,所述應(yīng)用節(jié)點(diǎn)獲取命令執(zhí)行文件中的最新的消息操作命令對(duì)應(yīng)的命令標(biāo)識(shí),包括:
[0024]所述應(yīng)用節(jié)點(diǎn)對(duì)所述命令執(zhí)行文件進(jìn)行監(jiān)控;
[0025]在監(jiān)控到最新的消息操作命令和對(duì)應(yīng)的命令標(biāo)識(shí)保存至所述命令執(zhí)行文件中時(shí),獲取所述最新的消息操作命令對(duì)應(yīng)的命令標(biāo)識(shí)。
[0026]結(jié)合第二方面或第二方面的第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,基于所述最新的消息操作命令對(duì)所述應(yīng)用節(jié)點(diǎn)的內(nèi)存進(jìn)行數(shù)據(jù)處理,包括:
[0027]所述應(yīng)用節(jié)點(diǎn)解析所述最新的消息操作命令,獲取對(duì)應(yīng)的數(shù)據(jù)處理指令;
[0028]根據(jù)所述數(shù)據(jù)處理指令從指定位置讀取對(duì)應(yīng)的數(shù)據(jù),將讀取的所述數(shù)據(jù)添加至所述應(yīng)用節(jié)點(diǎn)的內(nèi)存;或者將所述數(shù)據(jù)處理指令中攜帶的數(shù)據(jù)添加至所述應(yīng)用節(jié)點(diǎn)的內(nèi)存;或者根據(jù)所述數(shù)據(jù)處理指令,將所述應(yīng)用節(jié)點(diǎn)的內(nèi)存中的指定數(shù)據(jù)進(jìn)行刪除。
[0029]結(jié)合第二方面的或第二方面的以上任一種可能的實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中,基于所述最新的消息操作命令對(duì)所述應(yīng)用節(jié)點(diǎn)的內(nèi)存進(jìn)行數(shù)據(jù)處理后,還包括:
[0030]所述應(yīng)用節(jié)點(diǎn)使用所述最新的消息操作命令對(duì)應(yīng)的命令標(biāo)識(shí)對(duì)本地緩存的命令標(biāo)識(shí)進(jìn)行更新。
[0031]結(jié)合第二方面的或第二方面的以上任一種可能的實(shí)現(xiàn)方式,在第四種可能的實(shí)現(xiàn)方式中,還包括:
[0032]所述應(yīng)用節(jié)點(diǎn)對(duì)自身的內(nèi)存進(jìn)行周期性檢測(cè),若檢測(cè)結(jié)果為異?;蛩鰬?yīng)用節(jié)點(diǎn)重啟時(shí),則獲取預(yù)設(shè)在所述應(yīng)用節(jié)點(diǎn)中的對(duì)內(nèi)存進(jìn)行初始化的消息操作命令;
[0033]根據(jù)所述消息操作命令從指定位置讀取數(shù)據(jù)對(duì)所述內(nèi)存進(jìn)行初始化;
[0034]使用所述消息操作命令對(duì)應(yīng)的預(yù)設(shè)命令標(biāo)識(shí),對(duì)本地緩存的命令標(biāo)識(shí)進(jìn)行更新。
[0035]第三方面,一種消息同步裝置,包括:
[0036]接收單元,用于接收同步控制節(jié)點(diǎn)發(fā)送的同步消息;
[0037]處理單元,用于基于所述同步消息生成對(duì)應(yīng)的消息操作命令和所述消息操作命令的命令標(biāo)識(shí),將所述消息操作命令和對(duì)應(yīng)的命令標(biāo)識(shí)保存至命令執(zhí)行文件;
[0038]其中,所述命令執(zhí)行文件用于所述消息同步裝置對(duì)應(yīng)的應(yīng)用節(jié)點(diǎn)進(jìn)行內(nèi)存數(shù)據(jù)處理。
[0039]結(jié)合第三方面,在第一種可能的實(shí)現(xiàn)方式中,所述接收單元具體用于:
[0040]接收同步控制節(jié)點(diǎn)通過(guò)持久化消息總線Persist Message Bus發(fā)送的同步消息。
[0041]結(jié)合第三方面或第三方面的第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,所述接收單元在接收同步控制節(jié)點(diǎn)發(fā)送的同步消息后,還用于:
[0042]將所述同步消息持久化保存。
[0043]結(jié)合第三方面或第三方面的以上任一種可能的實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中,所述處理單元在將所述消息操作命令和對(duì)應(yīng)的命令標(biāo)識(shí)保存至命令執(zhí)行文件后,還用于:
[0044]向所述同步控制節(jié)點(diǎn)返回同步響應(yīng)消息。
[0045]第四方面,一種消息同步裝置,包括:
[0046]獲取單元,用于獲取命令執(zhí)行文件中的最新的消息操作命令對(duì)應(yīng)的命令標(biāo)識(shí);
[0047]判斷單元,用于判斷所述最新的消息操作命令對(duì)應(yīng)的命令標(biāo)識(shí)是否與本地緩存的命令標(biāo)識(shí)不相同;并
[0048]確定所述最新的消息操作命令對(duì)應(yīng)的命令標(biāo)識(shí)與本地緩存的命令標(biāo)識(shí)不相同時(shí),獲取所述最新的消息操作命令;
[0049]處理單元,用于基于所述最新的消息操作命令對(duì)所述消息同步裝置的內(nèi)存進(jìn)行數(shù)據(jù)處理。
[0050]結(jié)合第四方面,在第一種可能的實(shí)現(xiàn)方式中,所述獲取單元具體用于:
[0051 ] 對(duì)所述命令執(zhí)行文件進(jìn)行監(jiān)控;
[0052]在監(jiān)控到最新的消息操作命令和對(duì)應(yīng)的命令標(biāo)識(shí)保存至所述命令執(zhí)行文件中時(shí),獲取所述最新的消息操作命令對(duì)應(yīng)的命令標(biāo)識(shí)。
[0053]結(jié)合第四方面或第四方面的第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,所述處理單元具體用于:
[0054]解析所述最新的消息操作命令,獲取對(duì)應(yīng)的數(shù)據(jù)處理指令;
[0055]根據(jù)所述數(shù)據(jù)處理指令從指定位置讀取對(duì)應(yīng)的數(shù)據(jù),將讀取的所述數(shù)據(jù)添加至所述消息同步裝置的內(nèi)存;或者將所述數(shù)據(jù)處理指令中攜帶的數(shù)據(jù)添加至所述消息同步裝置的內(nèi)存;或者根據(jù)所述數(shù)據(jù)處理指令,將所述消息同步裝置的內(nèi)存中的指定數(shù)據(jù)進(jìn)行刪除。
[0056]結(jié)合第四方面或第四方面的以上任一種可能的實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中,所述處理單元在基于所述最新的消息操作命令對(duì)所述消息同步裝置的內(nèi)存進(jìn)行數(shù)據(jù)處理后,還用于:
[0057]使用所述最新的消息操作命令對(duì)應(yīng)的命令標(biāo)識(shí)對(duì)本地緩存的命令標(biāo)識(shí)進(jìn)行更新。
[0058]結(jié)合第四方面或第四方面的以上任一種可能的實(shí)現(xiàn)方式,在第四種可能的實(shí)現(xiàn)方式中,還包括:
[0059]檢測(cè)單元,用于對(duì)自身的內(nèi)存進(jìn)行周期性檢測(cè),若檢測(cè)結(jié)果為異?;蛩鰬?yīng)用節(jié)點(diǎn)重啟時(shí),則獲取預(yù)設(shè)在所述檢測(cè)單元中的對(duì)內(nèi)存進(jìn)行初始化的消息操作命令;
[0060]根據(jù)所述消息操作命令從指定位置讀取數(shù)據(jù)對(duì)所述內(nèi)存進(jìn)行初始化;
[0061]使用所述消息操作命令對(duì)應(yīng)的預(yù)設(shè)命令標(biāo)識(shí),對(duì)本地緩存的命令標(biāo)識(shí)進(jìn)行更新。
[0062]采用本發(fā)明技術(shù)方案,通過(guò)同步節(jié)點(diǎn)接收同步控制節(jié)點(diǎn)發(fā)送的同步消息后