亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

實(shí)現(xiàn)數(shù)據(jù)一致性的方法、系統(tǒng)、終端及計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)與流程

文檔序號(hào):11386680閱讀:186來(lái)源:國(guó)知局
本發(fā)明涉及數(shù)據(jù)處理
技術(shù)領(lǐng)域
:,尤其涉及一種實(shí)現(xiàn)數(shù)據(jù)一致性的方法、系統(tǒng)、終端及計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。
背景技術(shù)
::我們知道,消息中間件適用于需要可靠的數(shù)據(jù)傳送的分布式環(huán)境。采用消息中間件機(jī)制的系統(tǒng)中,不同的對(duì)象之間通過(guò)傳遞消息來(lái)激活對(duì)方的事件,完成相應(yīng)的操作。發(fā)送者將消息發(fā)送給消息服務(wù)器,消息服務(wù)器將消息存放在若干隊(duì)列中,在合適的時(shí)候再將消息轉(zhuǎn)發(fā)給接收者。消息中間件能在不同平臺(tái)之間通信,它常被用來(lái)屏蔽掉各種平臺(tái)及協(xié)議之間的特性,實(shí)現(xiàn)應(yīng)用程序之間的協(xié)同,其優(yōu)點(diǎn)在于能夠在客戶(hù)和服務(wù)器之間提供同步和異步的連接,并且在任何時(shí)刻都可以將消息進(jìn)行傳送或者存儲(chǔ)轉(zhuǎn)發(fā),這也是它比遠(yuǎn)程過(guò)程調(diào)用更進(jìn)一步的原因。一般系統(tǒng)中,都存在這樣一種場(chǎng)景,某一條數(shù)據(jù)既要保存至數(shù)據(jù)庫(kù)中,又要保存至緩存中。一般的情況就是要不先寫(xiě)入數(shù)據(jù)庫(kù),后寫(xiě)入緩存中,或者先寫(xiě)入緩存在寫(xiě)入數(shù)據(jù)庫(kù)中。此時(shí),如果其中有一個(gè)步驟不成功或者出現(xiàn)問(wèn)題,就會(huì)導(dǎo)致緩存和數(shù)據(jù)庫(kù)中的數(shù)據(jù)不一致,這是不可接受的。技術(shù)實(shí)現(xiàn)要素:本發(fā)明的主要目的在于提出一種實(shí)現(xiàn)數(shù)據(jù)一致性的方法、系統(tǒng)、終端及計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其可確保每一業(yè)務(wù)流程最終執(zhí)行成功,進(jìn)而使得流程數(shù)據(jù)最終保持一致性。為實(shí)現(xiàn)上述目的,本發(fā)明提供的一種實(shí)現(xiàn)數(shù)據(jù)一致性的方法,所述方法包括以下步驟:部署消息中間件,所述消息中間件設(shè)置有主隊(duì)列及失敗隊(duì)列;每一業(yè)務(wù)流程執(zhí)行前,先向所述主隊(duì)列中發(fā)送一條記錄信息,以記錄將要執(zhí)行的業(yè)務(wù)流程;每一業(yè)務(wù)流程執(zhí)行后,所述主隊(duì)列將執(zhí)行失敗的業(yè)務(wù)流程的相關(guān)記錄信息轉(zhuǎn)移給所述失敗隊(duì)列;處理所述失敗隊(duì)列時(shí),根據(jù)所述相關(guān)記錄信息重新執(zhí)行相應(yīng)的業(yè)務(wù)流程。優(yōu)選地,所述步驟“每一業(yè)務(wù)流程執(zhí)行后,所述主隊(duì)列將執(zhí)行失敗的業(yè)務(wù)流程的相關(guān)記錄信息轉(zhuǎn)移給所述失敗隊(duì)列”具體包括:當(dāng)所述業(yè)務(wù)流程的每一執(zhí)行步驟均執(zhí)行成功時(shí),所述主隊(duì)列刪除相關(guān)記錄信息,或在相關(guān)記錄信息上標(biāo)記該業(yè)務(wù)流程已處理完成。優(yōu)選地,所述步驟“每一業(yè)務(wù)流程執(zhí)行后,所述主隊(duì)列將執(zhí)行失敗的業(yè)務(wù)流程的相關(guān)記錄信息轉(zhuǎn)移給所述失敗隊(duì)列”具體還包括:當(dāng)所述業(yè)務(wù)流程的任一執(zhí)行步驟執(zhí)行失敗時(shí),所述主隊(duì)列將相關(guān)記錄信息發(fā)送給所述失敗隊(duì)列后,再進(jìn)行相關(guān)記錄信息刪除。優(yōu)選地,所述步驟“處理所述失敗隊(duì)列時(shí),根據(jù)所述相關(guān)記錄信息重新開(kāi)始執(zhí)行相應(yīng)的業(yè)務(wù)流程”具體包括:處理所述失敗隊(duì)列時(shí),先刪除所述相關(guān)記錄信息相應(yīng)的業(yè)務(wù)流程可能已經(jīng)執(zhí)行過(guò)的步驟,再重新開(kāi)始執(zhí)行相應(yīng)的業(yè)務(wù)流程,或根據(jù)所述相關(guān)記錄信息直接重新開(kāi)始執(zhí)行相應(yīng)的業(yè)務(wù)流程,以進(jìn)行數(shù)據(jù)覆蓋寫(xiě)入。此外,為實(shí)現(xiàn)上述目的,本發(fā)明還提出一種實(shí)現(xiàn)數(shù)據(jù)一致性的系統(tǒng),所述系統(tǒng)包括:消息中間件部署模塊,用于進(jìn)行消息中間件的部署,所述消息中間件設(shè)置有主隊(duì)列及失敗隊(duì)列;業(yè)務(wù)流程預(yù)處理模塊,用于每一業(yè)務(wù)流程執(zhí)行前,向所述主隊(duì)列中發(fā)送一條記錄信息,以記錄將要執(zhí)行的業(yè)務(wù)流程;業(yè)務(wù)流程執(zhí)行模塊,用于執(zhí)行所述業(yè)務(wù)流程的每一執(zhí)行步驟,并在每一所述業(yè)務(wù)流程執(zhí)行后,將執(zhí)行失敗的業(yè)務(wù)流程的相關(guān)記錄信息從所述主隊(duì)列轉(zhuǎn)移到所述失敗隊(duì)列;失敗隊(duì)列處理模塊,用于處理所述失敗隊(duì)列,以根據(jù)所述相關(guān)記錄信息重新開(kāi)始執(zhí)行相應(yīng)的業(yè)務(wù)流程。優(yōu)選地,所述業(yè)務(wù)流程執(zhí)行模塊包括執(zhí)行成功記錄單元,用于當(dāng)所述業(yè)務(wù)流程的每一執(zhí)行步驟均執(zhí)行成功時(shí),在所述主隊(duì)列上刪除相關(guān)記錄信息,或在所述主隊(duì)列的相關(guān)記錄信息上標(biāo)記該業(yè)務(wù)流程已處理完成。優(yōu)選地,所述業(yè)務(wù)流程執(zhí)行模塊包括執(zhí)行失敗記錄單元,用于當(dāng)所述業(yè)務(wù)流程的任一執(zhí)行步驟執(zhí)行失敗,將相關(guān)記錄信息從所述主隊(duì)列轉(zhuǎn)移給所述失敗隊(duì)列,并在所述主隊(duì)列上刪除相關(guān)記錄信息。優(yōu)選地,所述失敗隊(duì)列處理模塊處理處理所述失敗隊(duì)列時(shí),先刪除所述相關(guān)記錄信息相應(yīng)的業(yè)務(wù)流程可能已經(jīng)執(zhí)行過(guò)的執(zhí)行步驟,再重新開(kāi)始執(zhí)行相應(yīng)的業(yè)務(wù)流程,或根據(jù)所述相關(guān)記錄信息直接重新開(kāi)始執(zhí)行相應(yīng)的業(yè)務(wù)流程,以進(jìn)行數(shù)據(jù)覆蓋寫(xiě)入。此外,為實(shí)現(xiàn)上述目的,本發(fā)明還提出一種終端,所述終端包括存儲(chǔ)器、處理器及存儲(chǔ)在所述存儲(chǔ)器上并可在所述處理器上運(yùn)行的程序,所述程序被所述處理器執(zhí)行時(shí)實(shí)現(xiàn)如權(quán)利要求1-4任一所述的方法的步驟。此外,為實(shí)現(xiàn)上述目的,本發(fā)明還提出一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)存儲(chǔ)有一個(gè)或者多個(gè)程序,所述一個(gè)或者多個(gè)程序可被一個(gè)或者多個(gè)處理器執(zhí)行,以實(shí)現(xiàn)如權(quán)利要求上述的方法的步驟。本發(fā)明提出的一種實(shí)現(xiàn)數(shù)據(jù)一致性的方法、系統(tǒng)、終端及計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其通過(guò)消息中間件的主隊(duì)列來(lái)對(duì)每一業(yè)務(wù)流程的執(zhí)行進(jìn)行相關(guān)記錄,并將執(zhí)行失敗的業(yè)務(wù)流程的相關(guān)記錄信息轉(zhuǎn)移到消息中間件的失敗隊(duì)列,以便后續(xù)對(duì)失敗隊(duì)列的記錄信息的相關(guān)業(yè)務(wù)流程進(jìn)行重新執(zhí)行,進(jìn)而形成一種“執(zhí)行失敗的業(yè)務(wù)流程可重新執(zhí)行,直至該業(yè)務(wù)流程最終執(zhí)行成功為止”的機(jī)制,如此一來(lái),便可確保每一業(yè)務(wù)流程最終執(zhí)行成功,進(jìn)而使得流程數(shù)據(jù)最終保持一致性。附圖說(shuō)明圖1為實(shí)現(xiàn)本發(fā)明各個(gè)實(shí)施例的移動(dòng)終端的硬件結(jié)構(gòu)示意圖。圖2為如圖1所示的移動(dòng)終端所基于的通信網(wǎng)絡(luò)系統(tǒng)架構(gòu)圖。圖3為本發(fā)明第一實(shí)施例實(shí)現(xiàn)數(shù)據(jù)一致性的方法的流程框圖。圖4為本發(fā)明第二實(shí)施例實(shí)現(xiàn)數(shù)據(jù)一致性的系統(tǒng)的結(jié)構(gòu)框圖。;本發(fā)明目的的實(shí)現(xiàn)、功能特點(diǎn)及優(yōu)點(diǎn)將結(jié)合實(shí)施例,參照附圖做進(jìn)一步說(shuō)明。具體實(shí)施方式應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。在后續(xù)的描述中,使用用于表示元件的諸如“模塊”、“部件”或“單元”的后綴僅為了有利于本發(fā)明的說(shuō)明,其本身沒(méi)有特定的意義。因此,“模塊”、“部件”或“單元”可以混合地使用。終端可以以各種形式來(lái)實(shí)施。例如,本發(fā)明中描述的終端可以包括諸如手機(jī)、平板電腦、筆記本電腦、掌上電腦、個(gè)人數(shù)字助理(personaldigitalassistant,pda)、便捷式媒體播放器(portablemediaplayer,pmp)、導(dǎo)航裝置、可穿戴設(shè)備、智能手環(huán)、計(jì)步器等移動(dòng)終端,以及諸如數(shù)字tv、臺(tái)式計(jì)算機(jī)等固定終端。后續(xù)描述中將以移動(dòng)終端為例進(jìn)行說(shuō)明,本領(lǐng)域技術(shù)人員將理解的是,除了特別用于移動(dòng)目的的元件之外,根據(jù)本發(fā)明的實(shí)施方式的構(gòu)造也能夠應(yīng)用于固定類(lèi)型的終端。請(qǐng)參閱圖1,其為實(shí)現(xiàn)本發(fā)明各個(gè)實(shí)施例的一種移動(dòng)終端的硬件結(jié)構(gòu)示意圖,該移動(dòng)終端100可以包括:rf(radiofrequency,射頻)單元101、wifi模塊102、音頻輸出單元103、a/v(音頻/視頻)輸入單元104、傳感器105、顯示單元106、用戶(hù)輸入單元107、接口單元108、存儲(chǔ)器109、處理器110、以及電源111等部件。本領(lǐng)域技術(shù)人員可以理解,圖1中示出的移動(dòng)終端結(jié)構(gòu)并不構(gòu)成對(duì)移動(dòng)終端的限定,移動(dòng)終端可以包括比圖示更多或更少的部件,或者組合某些部件,或者不同的部件布置。下面結(jié)合圖1對(duì)移動(dòng)終端的各個(gè)部件進(jìn)行具體的介紹:射頻單元101可用于收發(fā)信息或通話過(guò)程中,信號(hào)的接收和發(fā)送,具體的,將基站的下行信息接收后,給處理器110處理;另外,將上行的數(shù)據(jù)發(fā)送給基站。通常,射頻單元101包括但不限于天線、至少一個(gè)放大器、收發(fā)信機(jī)、耦合器、低噪聲放大器、雙工器等。此外,射頻單元101還可以通過(guò)無(wú)線通信與網(wǎng)絡(luò)和其他設(shè)備通信。上述無(wú)線通信可以使用任一通信標(biāo)準(zhǔn)或協(xié)議,包括但不限于gsm(globalsystemofmobilecommunication,全球移動(dòng)通訊系統(tǒng))、gprs(generalpacketradioservice,通用分組無(wú)線服務(wù))、cdma2000(codedivisionmultipleaccess2000,碼分多址2000)、wcdma(widebandcodedivisionmultipleaccess,寬帶碼分多址)、td-scdma(timedivision-synchronouscodedivisionmultipleaccess,時(shí)分同步碼分多址)、fdd-lte(frequencydivisionduplexing-longtermevolution,頻分雙工長(zhǎng)期演進(jìn))和tdd-lte(timedivisionduplexing-longtermevolution,分時(shí)雙工長(zhǎng)期演進(jìn))等。wifi屬于短距離無(wú)線傳輸技術(shù),移動(dòng)終端通過(guò)wifi模塊102可以幫助用戶(hù)收發(fā)電子郵件、瀏覽網(wǎng)頁(yè)和訪問(wèn)流式媒體等,它為用戶(hù)提供了無(wú)線的寬帶互聯(lián)網(wǎng)訪問(wèn)。雖然圖1示出了wifi模塊102,但是可以理解的是,其并不屬于移動(dòng)終端的必須構(gòu)成,完全可以根據(jù)需要在不改變發(fā)明的本質(zhì)的范圍內(nèi)而省略。音頻輸出單元103可以在移動(dòng)終端100處于呼叫信號(hào)接收模式、通話模式、記錄模式、語(yǔ)音識(shí)別模式、廣播接收模式等等模式下時(shí),將射頻單元101或wifi模塊102接收的或者在存儲(chǔ)器109中存儲(chǔ)的音頻數(shù)據(jù)轉(zhuǎn)換成音頻信號(hào)并且輸出為聲音。而且,音頻輸出單元103還可以提供與移動(dòng)終端100執(zhí)行的特定功能相關(guān)的音頻輸出(例如,呼叫信號(hào)接收聲音、消息接收聲音等等)。音頻輸出單元103可以包括揚(yáng)聲器、蜂鳴器等等。a/v輸入單元104用于接收音頻或視頻信號(hào)。a/v輸入單元104可以包括圖形處理器(graphicsprocessingunit,gpu)1041和麥克風(fēng)1042,圖形處理器1041對(duì)在視頻捕獲模式或圖像捕獲模式中由圖像捕獲裝置(如攝像頭)獲得的靜態(tài)圖片或視頻的圖像數(shù)據(jù)進(jìn)行處理。處理后的圖像幀可以顯示在顯示單元106上。經(jīng)圖形處理器1041處理后的圖像幀可以存儲(chǔ)在存儲(chǔ)器109(或其它存儲(chǔ)介質(zhì))中或者經(jīng)由射頻單元101或wifi模塊102進(jìn)行發(fā)送。麥克風(fēng)1042可以在電話通話模式、記錄模式、語(yǔ)音識(shí)別模式等等運(yùn)行模式中經(jīng)由麥克風(fēng)1042接收聲音(音頻數(shù)據(jù)),并且能夠?qū)⑦@樣的聲音處理為音頻數(shù)據(jù)。處理后的音頻(語(yǔ)音)數(shù)據(jù)可以在電話通話模式的情況下轉(zhuǎn)換為可經(jīng)由射頻單元101發(fā)送到移動(dòng)通信基站的格式輸出。麥克風(fēng)1042可以實(shí)施各種類(lèi)型的噪聲消除(或抑制)算法以消除(或抑制)在接收和發(fā)送音頻信號(hào)的過(guò)程中產(chǎn)生的噪聲或者干擾。移動(dòng)終端100還包括至少一種傳感器105,比如光傳感器、運(yùn)動(dòng)傳感器以及其他傳感器。具體地,光傳感器包括環(huán)境光傳感器及接近傳感器,其中,環(huán)境光傳感器可根據(jù)環(huán)境光線的明暗來(lái)調(diào)節(jié)顯示面板1061的亮度,接近傳感器可在移動(dòng)終端100移動(dòng)到耳邊時(shí),關(guān)閉顯示面板1061和/或背光。作為運(yùn)動(dòng)傳感器的一種,加速計(jì)傳感器可檢測(cè)各個(gè)方向上(一般為三軸)加速度的大小,靜止時(shí)可檢測(cè)出重力的大小及方向,可用于識(shí)別手機(jī)姿態(tài)的應(yīng)用(比如橫豎屏切換、相關(guān)游戲、磁力計(jì)姿態(tài)校準(zhǔn))、振動(dòng)識(shí)別相關(guān)功能(比如計(jì)步器、敲擊)等;至于手機(jī)還可配置的指紋傳感器、壓力傳感器、虹膜傳感器、分子傳感器、陀螺儀、氣壓計(jì)、濕度計(jì)、溫度計(jì)、紅外線傳感器等其他傳感器,在此不再贅述。顯示單元106用于顯示由用戶(hù)輸入的信息或提供給用戶(hù)的信息。顯示單元106可包括顯示面板1061,可以采用液晶顯示器(liquidcrystaldisplay,lcd)、有機(jī)發(fā)光二極管(organiclight-emittingdiode,oled)等形式來(lái)配置顯示面板1061。用戶(hù)輸入單元107可用于接收輸入的數(shù)字或字符信息,以及產(chǎn)生與移動(dòng)終端的用戶(hù)設(shè)置以及功能控制有關(guān)的鍵信號(hào)輸入。具體地,用戶(hù)輸入單元107可包括觸控面板1071以及其他輸入設(shè)備1072。觸控面板1071,也稱(chēng)為觸摸屏,可收集用戶(hù)在其上或附近的觸摸操作(比如用戶(hù)使用手指、觸筆等任何適合的物體或附件在觸控面板1071上或在觸控面板1071附近的操作),并根據(jù)預(yù)先設(shè)定的程式驅(qū)動(dòng)相應(yīng)的連接裝置。觸控面板1071可包括觸摸檢測(cè)裝置和觸摸控制器兩個(gè)部分。其中,觸摸檢測(cè)裝置檢測(cè)用戶(hù)的觸摸方位,并檢測(cè)觸摸操作帶來(lái)的信號(hào),將信號(hào)傳送給觸摸控制器;觸摸控制器從觸摸檢測(cè)裝置上接收觸摸信息,并將它轉(zhuǎn)換成觸點(diǎn)坐標(biāo),再送給處理器110,并能接收處理器110發(fā)來(lái)的命令并加以執(zhí)行。此外,可以采用電阻式、電容式、紅外線以及表面聲波等多種類(lèi)型實(shí)現(xiàn)觸控面板1071。除了觸控面板1071,用戶(hù)輸入單元107還可以包括其他輸入設(shè)備1072。具體地,其他輸入設(shè)備1072可以包括但不限于物理鍵盤(pán)、功能鍵(比如音量控制按鍵、開(kāi)關(guān)按鍵等)、軌跡球、鼠標(biāo)、操作桿等中的一種或多種,具體此處不做限定。進(jìn)一步的,觸控面板1071可覆蓋顯示面板1061,當(dāng)觸控面板1071檢測(cè)到在其上或附近的觸摸操作后,傳送給處理器110以確定觸摸事件的類(lèi)型,隨后處理器110根據(jù)觸摸事件的類(lèi)型在顯示面板1061上提供相應(yīng)的視覺(jué)輸出。雖然在圖1中,觸控面板1071與顯示面板1061是作為兩個(gè)獨(dú)立的部件來(lái)實(shí)現(xiàn)移動(dòng)終端的輸入和輸出功能,但是在某些實(shí)施例中,可以將觸控面板1071與顯示面板1061集成而實(shí)現(xiàn)移動(dòng)終端的輸入和輸出功能,具體此處不做限定。接口單元108用作至少一個(gè)外部裝置與移動(dòng)終端100連接可以通過(guò)的接口。例如,外部裝置可以包括有線或無(wú)線頭戴式耳機(jī)端口、外部電源(或電池充電器)端口、有線或無(wú)線數(shù)據(jù)端口、存儲(chǔ)卡端口、用于連接具有識(shí)別模塊的裝置的端口、音頻輸入/輸出(i/o)端口、視頻i/o端口、耳機(jī)端口等等。接口單元108可以用于接收來(lái)自外部裝置的輸入(例如,數(shù)據(jù)信息、電力等等)并且將接收到的輸入傳輸?shù)揭苿?dòng)終端100內(nèi)的一個(gè)或多個(gè)元件或者可以用于在移動(dòng)終端100和外部裝置之間傳輸數(shù)據(jù)。存儲(chǔ)器109可用于存儲(chǔ)軟件程序以及各種數(shù)據(jù)。存儲(chǔ)器109可主要包括存儲(chǔ)程序區(qū)和存儲(chǔ)數(shù)據(jù)區(qū),其中,存儲(chǔ)程序區(qū)可存儲(chǔ)操作系統(tǒng)、至少一個(gè)功能所需的應(yīng)用程序(比如聲音播放功能、圖像播放功能等)等;存儲(chǔ)數(shù)據(jù)區(qū)可存儲(chǔ)根據(jù)手機(jī)的使用所創(chuàng)建的數(shù)據(jù)(比如音頻數(shù)據(jù)、電話本等)等。此外,存儲(chǔ)器109可以包括高速隨機(jī)存取存儲(chǔ)器,還可以包括非易失性存儲(chǔ)器,例如至少一個(gè)磁盤(pán)存儲(chǔ)器件、閃存器件、或其他易失性固態(tài)存儲(chǔ)器件。處理器110是移動(dòng)終端的控制中心,利用各種接口和線路連接整個(gè)移動(dòng)終端的各個(gè)部分,通過(guò)運(yùn)行或執(zhí)行存儲(chǔ)在存儲(chǔ)器109內(nèi)的軟件程序和/或模塊,以及調(diào)用存儲(chǔ)在存儲(chǔ)器109內(nèi)的數(shù)據(jù),執(zhí)行移動(dòng)終端的各種功能和處理數(shù)據(jù),從而對(duì)移動(dòng)終端進(jìn)行整體監(jiān)控。處理器110可包括一個(gè)或多個(gè)處理單元;優(yōu)選的,處理器110可集成應(yīng)用處理器和調(diào)制解調(diào)處理器,其中,應(yīng)用處理器主要處理操作系統(tǒng)、用戶(hù)界面和應(yīng)用程序等,調(diào)制解調(diào)處理器主要處理無(wú)線通信。可以理解的是,上述調(diào)制解調(diào)處理器也可以不集成到處理器110中。移動(dòng)終端100還可以包括給各個(gè)部件供電的電源111(比如電池),優(yōu)選的,電源111可以通過(guò)電源管理系統(tǒng)與處理器110邏輯相連,從而通過(guò)電源管理系統(tǒng)實(shí)現(xiàn)管理充電、放電、以及功耗管理等功能。盡管圖1未示出,移動(dòng)終端100還可以包括藍(lán)牙模塊等,在此不再贅述。為了便于理解本發(fā)明實(shí)施例,下面對(duì)本發(fā)明的移動(dòng)終端所基于的通信網(wǎng)絡(luò)系統(tǒng)進(jìn)行描述。請(qǐng)參閱圖2,圖2為本發(fā)明實(shí)施例提供的一種通信網(wǎng)絡(luò)系統(tǒng)架構(gòu)圖,該通信網(wǎng)絡(luò)系統(tǒng)為通用移動(dòng)通信技術(shù)的lte系統(tǒng),該lte系統(tǒng)包括依次通訊連接的ue(userequipment,用戶(hù)設(shè)備)201,e-utran(evolvedumtsterrestrialradioaccessnetwork,演進(jìn)式umts陸地?zé)o線接入網(wǎng))202,epc(evolvedpacketcore,演進(jìn)式分組核心網(wǎng))203和運(yùn)營(yíng)商的ip業(yè)務(wù)204。具體地,ue201可以是上述終端100,此處不再贅述。e-utran202包括enodeb2021和其它enodeb2022等。其中,enodeb2021可以通過(guò)回程(backhaul)(例如x2接口)與其它enodeb2022連接,enodeb2021連接到epc203,enodeb2021可以提供ue201到epc203的接入。epc203可以包括mme(mobilitymanagemententity,移動(dòng)性管理實(shí)體)2031,hss(homesubscriberserver,歸屬用戶(hù)服務(wù)器)2032,其它mme2033,sgw(servinggateway,服務(wù)網(wǎng)關(guān))2034,pgw(pdngateway,分組數(shù)據(jù)網(wǎng)絡(luò)網(wǎng)關(guān))2035和pcrf(policyandchargingrulesfunction,政策和資費(fèi)功能實(shí)體)2036等。其中,mme2031是處理ue201和epc203之間信令的控制節(jié)點(diǎn),提供承載和連接管理。hss2032用于提供一些寄存器來(lái)管理諸如歸屬位置寄存器(圖中未示)之類(lèi)的功能,并且保存有一些有關(guān)服務(wù)特征、數(shù)據(jù)速率等用戶(hù)專(zhuān)用的信息。所有用戶(hù)數(shù)據(jù)都可以通過(guò)sgw2034進(jìn)行發(fā)送,pgw2035可以提供ue201的ip地址分配以及其它功能,pcrf2036是業(yè)務(wù)數(shù)據(jù)流和ip承載資源的策略與計(jì)費(fèi)控制策略決策點(diǎn),它為策略與計(jì)費(fèi)執(zhí)行功能單元(圖中未示)選擇及提供可用的策略和計(jì)費(fèi)控制決策。ip業(yè)務(wù)204可以包括因特網(wǎng)、內(nèi)聯(lián)網(wǎng)、ims(ipmultimediasubsystem,ip多媒體子系統(tǒng))或其它ip業(yè)務(wù)等。雖然上述以lte系統(tǒng)為例進(jìn)行了介紹,但本領(lǐng)域技術(shù)人員應(yīng)當(dāng)知曉,本發(fā)明不僅僅適用于lte系統(tǒng),也可以適用于其他無(wú)線通信系統(tǒng),例如gsm、cdma2000、wcdma、td-scdma以及未來(lái)新的網(wǎng)絡(luò)系統(tǒng)等,此處不做限定?;谏鲜鲆苿?dòng)終端硬件結(jié)構(gòu)以及通信網(wǎng)絡(luò)系統(tǒng),提出本發(fā)明方法各個(gè)實(shí)施例。如圖1所示,本發(fā)明第一實(shí)施例提出一種實(shí)現(xiàn)數(shù)據(jù)一致性的方法,包括以下步驟:步驟s1:部署消息中間件,消息中間件設(shè)置有主隊(duì)列及失敗隊(duì)列。具體地,消息中間件適用于需要可靠的數(shù)據(jù)傳送的分布式環(huán)境。采用消息中間件機(jī)制的系統(tǒng)中,不同的對(duì)象之間通過(guò)傳遞消息來(lái)激活對(duì)方的事件,完成相應(yīng)的操作。發(fā)送者將消息發(fā)送給消息服務(wù)器,消息服務(wù)器將消息存放在若干隊(duì)列中,在合適的時(shí)候再將消息轉(zhuǎn)發(fā)給接收者。消息中間件能在不同平臺(tái)之間通信,它常被用來(lái)屏蔽掉各種平臺(tái)及協(xié)議之間的特性,實(shí)現(xiàn)應(yīng)用程序之間的協(xié)同,其優(yōu)點(diǎn)在于能夠在客戶(hù)和服務(wù)器之間提供同步和異步的連接,并且在任何時(shí)刻都可以將消息進(jìn)行傳送或者存儲(chǔ)轉(zhuǎn)發(fā),這也是它比遠(yuǎn)程過(guò)程調(diào)用更進(jìn)一步的原因。消息中間件利用高效可靠的消息傳遞機(jī)制進(jìn)行平臺(tái)無(wú)關(guān)的數(shù)據(jù)交流,并基于數(shù)據(jù)通信來(lái)進(jìn)行分布式系統(tǒng)的集成,通過(guò)提供消息傳遞和消息排隊(duì)模型,它可以在分布式環(huán)境下擴(kuò)展進(jìn)程間的通信。因而,在業(yè)務(wù)流程執(zhí)行前,為便于對(duì)該業(yè)務(wù)流程進(jìn)行相關(guān)記錄標(biāo)記,可先部署好一個(gè)消息中間件,該消息中間件可以是redis(redis是一個(gè)開(kāi)源的使用ansic語(yǔ)言編寫(xiě)、支持網(wǎng)絡(luò)、可基于內(nèi)存亦可持久化的日志型、key-value數(shù)據(jù)庫(kù),并提供多種語(yǔ)言的api)或者kafka(kafka是一種高吞吐量的分布式發(fā)布訂閱消息系統(tǒng),它可以處理消費(fèi)者規(guī)模的網(wǎng)站中的所有動(dòng)作流數(shù)據(jù))或者其他支持消息應(yīng)答取消功能的消息中間件。消息中間件設(shè)置有主隊(duì)列及失敗隊(duì)列,其中,主隊(duì)列用于存放正常的記錄信息,失敗隊(duì)列用于存放出現(xiàn)執(zhí)行異常的記錄信息。步驟s2:每一業(yè)務(wù)流程執(zhí)行前,先向消息中間件的主隊(duì)列中發(fā)送一條記錄信息,以記錄將要執(zhí)行的業(yè)務(wù)流程。具體地,整個(gè)業(yè)務(wù)流程一般包括多個(gè)執(zhí)行步驟,如保存數(shù)據(jù)庫(kù),保存緩存,或者其他的業(yè)務(wù)操作等,而確保每一業(yè)務(wù)流程的每個(gè)執(zhí)行步驟都最終執(zhí)行成功,以使得流程數(shù)據(jù)最終保持一致性,可在每一業(yè)務(wù)流程執(zhí)行前,先向消息中間件的主隊(duì)列中發(fā)送一條記錄信息,以記錄將要執(zhí)行的業(yè)務(wù)流程,該記錄信息具體可記錄“將要執(zhí)行的業(yè)務(wù)流程是什么流程?”“該業(yè)務(wù)流程包括哪些執(zhí)行步驟?”等等信息。步驟s3:每一業(yè)務(wù)流程執(zhí)行后,消息中間件的主隊(duì)列將執(zhí)行失敗的業(yè)務(wù)流程的相關(guān)記錄信息轉(zhuǎn)移給消息中間件的失敗隊(duì)列。具體地,當(dāng)其向消息中間件的主隊(duì)列中發(fā)送一條記錄信息,以記錄將要執(zhí)行的業(yè)務(wù)流程后,便可依次執(zhí)行該業(yè)務(wù)流程的每一執(zhí)行步驟,在這過(guò)程中,消息中間件的主隊(duì)列的相關(guān)記錄信息可同時(shí)記錄“每一執(zhí)行步驟是否執(zhí)行成功?”等信息。當(dāng)該業(yè)務(wù)流程的每一執(zhí)行步驟均執(zhí)行成功時(shí),消息中間件的主隊(duì)列刪除相關(guān)記錄信息,或在該相關(guān)記錄信息上標(biāo)記該業(yè)務(wù)流程已處理完成,即等待該業(yè)務(wù)流程的每一執(zhí)行步驟都執(zhí)行成功之后,發(fā)送響應(yīng)信息至消息中間件的主隊(duì)列中,由消息中間件的主隊(duì)列刪除相對(duì)應(yīng)的記錄信息,或在該相對(duì)應(yīng)的記錄信息上標(biāo)記該業(yè)務(wù)流程已處理完成。而當(dāng)該業(yè)務(wù)流程的任一執(zhí)行步驟執(zhí)行失敗時(shí),消息中間件的主隊(duì)列將相關(guān)記錄信息發(fā)送給消息中間件的失敗隊(duì)列后,再進(jìn)行相關(guān)記錄信息刪除,即如果整個(gè)業(yè)務(wù)流程執(zhí)行過(guò)程中出現(xiàn)任何一個(gè)步驟失敗時(shí),則消息中間件的主隊(duì)列先將該業(yè)務(wù)流程的相關(guān)記錄信息寫(xiě)入消息中間件的失敗隊(duì)列,再響應(yīng)消息中間件的主隊(duì)列,刪除消息中間件的主隊(duì)列中的相關(guān)記錄信息。步驟s4:處理消息中間件的失敗隊(duì)列時(shí),根據(jù)消息中間件的失敗隊(duì)列的相關(guān)記錄信息重新開(kāi)始執(zhí)行相應(yīng)的業(yè)務(wù)流程。具體地,程序可設(shè)置一個(gè)額外的線程專(zhuān)門(mén)針對(duì)消息中間件的失敗隊(duì)列進(jìn)行處理。當(dāng)處理消息中間件的失敗隊(duì)列時(shí),可先刪除消息中間件的失敗隊(duì)列的相關(guān)記錄信息相應(yīng)的業(yè)務(wù)流程可能已經(jīng)執(zhí)行過(guò)的步驟,再重新開(kāi)始執(zhí)行相應(yīng)的業(yè)務(wù)流程,由于該相關(guān)記錄信息可對(duì)該業(yè)務(wù)流程的每一執(zhí)行步驟的執(zhí)行進(jìn)行相關(guān)記錄,根據(jù)這些相關(guān)記錄,可知道該業(yè)務(wù)流程可能已經(jīng)執(zhí)行過(guò)的步驟有哪些,此時(shí),可先將這些步驟執(zhí)行過(guò)的操作都刪除掉,以便重新開(kāi)始執(zhí)行該業(yè)務(wù)流程;亦可根據(jù)記錄信息直接重新開(kāi)始執(zhí)行相應(yīng)的業(yè)務(wù)流程,以進(jìn)行數(shù)據(jù)覆蓋寫(xiě)入,即無(wú)視之前該業(yè)務(wù)流程已經(jīng)執(zhí)行過(guò)什么步驟,直接重新開(kāi)始執(zhí)行一次該業(yè)務(wù)流程,以對(duì)之前的數(shù)據(jù)進(jìn)行覆蓋寫(xiě)入。這樣一來(lái),便可形成一種“執(zhí)行失敗的業(yè)務(wù)流程可重新執(zhí)行,直至該業(yè)務(wù)流程最終執(zhí)行成功為止”的機(jī)制,如此一來(lái),便可確保每一業(yè)務(wù)流程最終執(zhí)行成功,進(jìn)而使得流程數(shù)據(jù)最終保持一致性。如圖4所示,本發(fā)明第二實(shí)施例提出一種實(shí)現(xiàn)數(shù)據(jù)一致性的系統(tǒng)300,該系統(tǒng)300包括消息中間件部署模塊310、業(yè)務(wù)流程預(yù)處理模塊320、業(yè)務(wù)流程執(zhí)行模塊330以及失敗隊(duì)列處理模塊340。其中,消息中間件部署模塊310主要用于進(jìn)行消息中間件的部署,該消息中間件設(shè)置有主隊(duì)列及失敗隊(duì)列。具體地,消息中間件適用于需要可靠的數(shù)據(jù)傳送的分布式環(huán)境。采用消息中間件機(jī)制的系統(tǒng)中,不同的對(duì)象之間通過(guò)傳遞消息來(lái)激活對(duì)方的事件,完成相應(yīng)的操作。發(fā)送者將消息發(fā)送給消息服務(wù)器,消息服務(wù)器將消息存放在若干隊(duì)列中,在合適的時(shí)候再將消息轉(zhuǎn)發(fā)給接收者。消息中間件能在不同平臺(tái)之間通信,它常被用來(lái)屏蔽掉各種平臺(tái)及協(xié)議之間的特性,實(shí)現(xiàn)應(yīng)用程序之間的協(xié)同,其優(yōu)點(diǎn)在于能夠在客戶(hù)和服務(wù)器之間提供同步和異步的連接,并且在任何時(shí)刻都可以將消息進(jìn)行傳送或者存儲(chǔ)轉(zhuǎn)發(fā),這也是它比遠(yuǎn)程過(guò)程調(diào)用更進(jìn)一步的原因。消息中間件利用高效可靠的消息傳遞機(jī)制進(jìn)行平臺(tái)無(wú)關(guān)的數(shù)據(jù)交流,并基于數(shù)據(jù)通信來(lái)進(jìn)行分布式系統(tǒng)的集成,通過(guò)提供消息傳遞和消息排隊(duì)模型,它可以在分布式環(huán)境下擴(kuò)展進(jìn)程間的通信。因而,在業(yè)務(wù)流程執(zhí)行前,為便于對(duì)該業(yè)務(wù)流程進(jìn)行相關(guān)記錄標(biāo)記,可通過(guò)消息中間件部署模塊310先部署好一個(gè)消息中間件,該消息中間件可以是redis(redis是一個(gè)開(kāi)源的使用ansic語(yǔ)言編寫(xiě)、支持網(wǎng)絡(luò)、可基于內(nèi)存亦可持久化的日志型、key-value數(shù)據(jù)庫(kù),并提供多種語(yǔ)言的api)或者kafka(kafka是一種高吞吐量的分布式發(fā)布訂閱消息系統(tǒng),它可以處理消費(fèi)者規(guī)模的網(wǎng)站中的所有動(dòng)作流數(shù)據(jù))或者其他支持消息應(yīng)答取消功能的消息中間件。消息中間件設(shè)置有主隊(duì)列及失敗隊(duì)列,其中,主隊(duì)列用于存放正常的記錄信息,失敗隊(duì)列用于存放出現(xiàn)執(zhí)行異常的記錄信息。業(yè)務(wù)流程預(yù)處理模塊320主要用于每一業(yè)務(wù)流程執(zhí)行前,向消息中間件的主隊(duì)列中發(fā)送一條記錄信息,以記錄將要執(zhí)行的業(yè)務(wù)流程。具體地,整個(gè)業(yè)務(wù)流程一般包括多個(gè)執(zhí)行步驟,如保存數(shù)據(jù)庫(kù),保存緩存,或者其他的業(yè)務(wù)操作等,而確保每一業(yè)務(wù)流程的每個(gè)執(zhí)行步驟都最終執(zhí)行成功,以使得流程數(shù)據(jù)最終保持一致性,可在每一業(yè)務(wù)流程執(zhí)行前,通過(guò)業(yè)務(wù)流程預(yù)處理模塊320先向消息中間件的主隊(duì)列中發(fā)送一條記錄信息,以記錄將要執(zhí)行的業(yè)務(wù)流程,該記錄信息具體可記錄“將要執(zhí)行的業(yè)務(wù)流程是什么流程?”“該業(yè)務(wù)流程包括哪些執(zhí)行步驟?”等等信息。業(yè)務(wù)流程執(zhí)行模塊330主要用于執(zhí)行業(yè)務(wù)流程的每一執(zhí)行步驟,并在每一業(yè)務(wù)流程執(zhí)行后,將執(zhí)行失敗的業(yè)務(wù)流程的相關(guān)記錄信息從主隊(duì)列轉(zhuǎn)移到所述失敗隊(duì)列。該業(yè)務(wù)流程執(zhí)行模塊包括執(zhí)行成功記錄單元331和執(zhí)行失敗記錄單元332。具體地,當(dāng)業(yè)務(wù)流程預(yù)處理模塊320向消息中間件的主隊(duì)列中發(fā)送一條記錄信息,以記錄將要執(zhí)行的業(yè)務(wù)流程后,業(yè)務(wù)流程執(zhí)行模塊330便可依次執(zhí)行該業(yè)務(wù)流程的每一執(zhí)行步驟,在這過(guò)程中,消息中間件的主隊(duì)列的相關(guān)記錄信息可同時(shí)記錄“每一執(zhí)行步驟是否執(zhí)行成功?”等信息。當(dāng)該業(yè)務(wù)流程的每一執(zhí)行步驟均執(zhí)行成功時(shí),執(zhí)行成功單元331在主隊(duì)列刪除相關(guān)記錄信息,或在相關(guān)記錄信息上標(biāo)記該業(yè)務(wù)流程已處理完成,即等待該業(yè)務(wù)流程的每一執(zhí)行步驟都執(zhí)行成功之后,執(zhí)行成功單元331會(huì)發(fā)送響應(yīng)信息至消息中間件的主隊(duì)列中,并在消息中間件的主隊(duì)列上刪除相對(duì)應(yīng)的記錄信息,或在消息中間件的主隊(duì)列上的相對(duì)應(yīng)的記錄信息上標(biāo)記該業(yè)務(wù)流程已處理完成。而當(dāng)該業(yè)務(wù)流程的任一執(zhí)行步驟執(zhí)行失敗時(shí),執(zhí)行失敗記錄單元332會(huì)將相關(guān)記錄信息從消息中間件的主隊(duì)列轉(zhuǎn)移給消息中間件的失敗隊(duì)列,并在消息中間件的主隊(duì)列上刪除相關(guān)記錄信息。即如果整個(gè)業(yè)務(wù)流程執(zhí)行過(guò)程中出現(xiàn)任何一個(gè)步驟失敗時(shí),則執(zhí)行失敗記錄單元332會(huì)先將該業(yè)務(wù)流程的相關(guān)記錄信息由消息中間件的主隊(duì)列寫(xiě)入消息中間件的失敗隊(duì)列,再響應(yīng)消息中間件的主隊(duì)列,刪除消息中間件的主隊(duì)列中的相關(guān)記錄信息。失敗隊(duì)列處理模塊340主要用于處理消息中間件的失敗隊(duì)列,以根據(jù)消息中間件的失敗隊(duì)列的相關(guān)記錄信息重新開(kāi)始執(zhí)行相應(yīng)的業(yè)務(wù)流程。具體地,通過(guò)失敗隊(duì)列處理模塊340專(zhuān)門(mén)針對(duì)消息中間件的失敗隊(duì)列進(jìn)行處理。當(dāng)失敗隊(duì)列處理模塊340處理消息中間件的失敗隊(duì)列時(shí),可先刪除消息中間件的失敗隊(duì)列的相關(guān)記錄信息相應(yīng)的業(yè)務(wù)流程可能已經(jīng)執(zhí)行過(guò)的步驟,再重新開(kāi)始執(zhí)行相應(yīng)的業(yè)務(wù)流程,由于該相關(guān)記錄信息可對(duì)該業(yè)務(wù)流程的每一執(zhí)行步驟的執(zhí)行進(jìn)行相關(guān)記錄,根據(jù)這些相關(guān)記錄,可知道該業(yè)務(wù)流程可能已經(jīng)執(zhí)行過(guò)的步驟有哪些,此時(shí),可先將這些步驟執(zhí)行過(guò)的操作都刪除掉,以便重新開(kāi)始執(zhí)行該業(yè)務(wù)流程;亦可根據(jù)記錄信息直接重新開(kāi)始執(zhí)行相應(yīng)的業(yè)務(wù)流程,以進(jìn)行數(shù)據(jù)覆蓋寫(xiě)入,即無(wú)視之前該業(yè)務(wù)流程已經(jīng)執(zhí)行過(guò)什么步驟,直接重新開(kāi)始執(zhí)行一次該業(yè)務(wù)流程,以對(duì)之前的數(shù)據(jù)進(jìn)行覆蓋寫(xiě)入。這樣一來(lái),便可形成一種“執(zhí)行失敗的業(yè)務(wù)流程可重新執(zhí)行,直至該業(yè)務(wù)流程最終執(zhí)行成功為止”的機(jī)制,如此一來(lái),便可確保每一業(yè)務(wù)流程最終執(zhí)行成功,進(jìn)而使得流程數(shù)據(jù)最終保持一致性。本發(fā)明第三實(shí)施例還提出一種終端,該終端包括存儲(chǔ)器、處理器及存儲(chǔ)在該存儲(chǔ)器上并可在該處理器上運(yùn)行的程序,該程序被該處理器執(zhí)行時(shí)實(shí)現(xiàn)以下如圖3所示的具體步驟:步驟s1:部署消息中間件,消息中間件設(shè)置有主隊(duì)列及失敗隊(duì)列。具體地,消息中間件適用于需要可靠的數(shù)據(jù)傳送的分布式環(huán)境。采用消息中間件機(jī)制的系統(tǒng)中,不同的對(duì)象之間通過(guò)傳遞消息來(lái)激活對(duì)方的事件,完成相應(yīng)的操作。發(fā)送者將消息發(fā)送給消息服務(wù)器,消息服務(wù)器將消息存放在若干隊(duì)列中,在合適的時(shí)候再將消息轉(zhuǎn)發(fā)給接收者。消息中間件能在不同平臺(tái)之間通信,它常被用來(lái)屏蔽掉各種平臺(tái)及協(xié)議之間的特性,實(shí)現(xiàn)應(yīng)用程序之間的協(xié)同,其優(yōu)點(diǎn)在于能夠在客戶(hù)和服務(wù)器之間提供同步和異步的連接,并且在任何時(shí)刻都可以將消息進(jìn)行傳送或者存儲(chǔ)轉(zhuǎn)發(fā),這也是它比遠(yuǎn)程過(guò)程調(diào)用更進(jìn)一步的原因。消息中間件利用高效可靠的消息傳遞機(jī)制進(jìn)行平臺(tái)無(wú)關(guān)的數(shù)據(jù)交流,并基于數(shù)據(jù)通信來(lái)進(jìn)行分布式系統(tǒng)的集成,通過(guò)提供消息傳遞和消息排隊(duì)模型,它可以在分布式環(huán)境下擴(kuò)展進(jìn)程間的通信。因而,在業(yè)務(wù)流程執(zhí)行前,為便于對(duì)該業(yè)務(wù)流程進(jìn)行相關(guān)記錄標(biāo)記,可先部署好一個(gè)消息中間件,該消息中間件可以是redis(redis是一個(gè)開(kāi)源的使用ansic語(yǔ)言編寫(xiě)、支持網(wǎng)絡(luò)、可基于內(nèi)存亦可持久化的日志型、key-value數(shù)據(jù)庫(kù),并提供多種語(yǔ)言的api)或者kafka(kafka是一種高吞吐量的分布式發(fā)布訂閱消息系統(tǒng),它可以處理消費(fèi)者規(guī)模的網(wǎng)站中的所有動(dòng)作流數(shù)據(jù))或者其他支持消息應(yīng)答取消功能的消息中間件。消息中間件設(shè)置有主隊(duì)列及失敗隊(duì)列,其中,主隊(duì)列用于存放正常的記錄信息,失敗隊(duì)列用于存放出現(xiàn)執(zhí)行異常的記錄信息。步驟s2:每一業(yè)務(wù)流程執(zhí)行前,先向消息中間件的主隊(duì)列中發(fā)送一條記錄信息,以記錄將要執(zhí)行的業(yè)務(wù)流程。具體地,整個(gè)業(yè)務(wù)流程一般包括多個(gè)執(zhí)行步驟,如保存數(shù)據(jù)庫(kù),保存緩存,或者其他的業(yè)務(wù)操作等,而確保每一業(yè)務(wù)流程的每個(gè)執(zhí)行步驟都最終執(zhí)行成功,以使得流程數(shù)據(jù)最終保持一致性,可在每一業(yè)務(wù)流程執(zhí)行前,先向消息中間件的主隊(duì)列中發(fā)送一條記錄信息,以記錄將要執(zhí)行的業(yè)務(wù)流程,該記錄信息具體可記錄“將要執(zhí)行的業(yè)務(wù)流程是什么流程?”“該業(yè)務(wù)流程包括哪些執(zhí)行步驟?”等等信息。步驟s3:每一業(yè)務(wù)流程執(zhí)行后,消息中間件的主隊(duì)列將執(zhí)行失敗的業(yè)務(wù)流程的相關(guān)記錄信息轉(zhuǎn)移給消息中間件的失敗隊(duì)列。具體地,當(dāng)其向消息中間件的主隊(duì)列中發(fā)送一條記錄信息,以記錄將要執(zhí)行的業(yè)務(wù)流程后,便可依次執(zhí)行該業(yè)務(wù)流程的每一執(zhí)行步驟,在這過(guò)程中,消息中間件的主隊(duì)列的相關(guān)記錄信息可同時(shí)記錄“每一執(zhí)行步驟是否執(zhí)行成功?”等信息。當(dāng)該業(yè)務(wù)流程的每一執(zhí)行步驟均執(zhí)行成功時(shí),消息中間件的主隊(duì)列刪除相關(guān)記錄信息,或在該相關(guān)記錄信息上標(biāo)記該業(yè)務(wù)流程已處理完成,即等待該業(yè)務(wù)流程的每一執(zhí)行步驟都執(zhí)行成功之后,發(fā)送響應(yīng)信息至消息中間件的主隊(duì)列中,由消息中間件的主隊(duì)列刪除相對(duì)應(yīng)的記錄信息,或在該相對(duì)應(yīng)的記錄信息上標(biāo)記該業(yè)務(wù)流程已處理完成。而當(dāng)該業(yè)務(wù)流程的任一執(zhí)行步驟執(zhí)行失敗時(shí),消息中間件的主隊(duì)列將相關(guān)記錄信息發(fā)送給消息中間件的失敗隊(duì)列后,再進(jìn)行相關(guān)記錄信息刪除,即如果整個(gè)業(yè)務(wù)流程執(zhí)行過(guò)程中出現(xiàn)任何一個(gè)步驟失敗時(shí),則消息中間件的主隊(duì)列先將該業(yè)務(wù)流程的相關(guān)記錄信息寫(xiě)入消息中間件的失敗隊(duì)列,再響應(yīng)消息中間件的主隊(duì)列,刪除消息中間件的主隊(duì)列中的相關(guān)記錄信息。步驟s4:處理消息中間件的失敗隊(duì)列時(shí),根據(jù)消息中間件的失敗隊(duì)列的相關(guān)記錄信息重新開(kāi)始執(zhí)行相應(yīng)的業(yè)務(wù)流程。具體地,程序可設(shè)置一個(gè)額外的線程專(zhuān)門(mén)針對(duì)消息中間件的失敗隊(duì)列進(jìn)行處理。當(dāng)處理消息中間件的失敗隊(duì)列時(shí),可先刪除消息中間件的失敗隊(duì)列的相關(guān)記錄信息相應(yīng)的業(yè)務(wù)流程可能已經(jīng)執(zhí)行過(guò)的步驟,再重新開(kāi)始執(zhí)行相應(yīng)的業(yè)務(wù)流程,由于該相關(guān)記錄信息可對(duì)該業(yè)務(wù)流程的每一執(zhí)行步驟的執(zhí)行進(jìn)行相關(guān)記錄,根據(jù)這些相關(guān)記錄,可知道該業(yè)務(wù)流程可能已經(jīng)執(zhí)行過(guò)的步驟有哪些,此時(shí),可先將這些步驟執(zhí)行過(guò)的操作都刪除掉,以便重新開(kāi)始執(zhí)行該業(yè)務(wù)流程;亦可根據(jù)記錄信息直接重新開(kāi)始執(zhí)行相應(yīng)的業(yè)務(wù)流程,以進(jìn)行數(shù)據(jù)覆蓋寫(xiě)入,即無(wú)視之前該業(yè)務(wù)流程已經(jīng)執(zhí)行過(guò)什么步驟,直接重新開(kāi)始執(zhí)行一次該業(yè)務(wù)流程,以對(duì)之前的數(shù)據(jù)進(jìn)行覆蓋寫(xiě)入。這樣一來(lái),便可形成一種“執(zhí)行失敗的業(yè)務(wù)流程可重新執(zhí)行,直至該業(yè)務(wù)流程最終執(zhí)行成功為止”的機(jī)制,如此一來(lái),便可確保每一業(yè)務(wù)流程最終執(zhí)行成功,進(jìn)而使得流程數(shù)據(jù)最終保持一致性。本發(fā)明第四實(shí)施例還提出一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),該計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)存儲(chǔ)有一個(gè)或者多個(gè)程序,該一個(gè)或者多個(gè)程序可被一個(gè)或者多個(gè)處理器執(zhí)行,以實(shí)現(xiàn)以下如圖3所示的具體步驟:步驟s1:部署消息中間件,消息中間件設(shè)置有主隊(duì)列及失敗隊(duì)列。具體地,消息中間件適用于需要可靠的數(shù)據(jù)傳送的分布式環(huán)境。采用消息中間件機(jī)制的系統(tǒng)中,不同的對(duì)象之間通過(guò)傳遞消息來(lái)激活對(duì)方的事件,完成相應(yīng)的操作。發(fā)送者將消息發(fā)送給消息服務(wù)器,消息服務(wù)器將消息存放在若干隊(duì)列中,在合適的時(shí)候再將消息轉(zhuǎn)發(fā)給接收者。消息中間件能在不同平臺(tái)之間通信,它常被用來(lái)屏蔽掉各種平臺(tái)及協(xié)議之間的特性,實(shí)現(xiàn)應(yīng)用程序之間的協(xié)同,其優(yōu)點(diǎn)在于能夠在客戶(hù)和服務(wù)器之間提供同步和異步的連接,并且在任何時(shí)刻都可以將消息進(jìn)行傳送或者存儲(chǔ)轉(zhuǎn)發(fā),這也是它比遠(yuǎn)程過(guò)程調(diào)用更進(jìn)一步的原因。消息中間件利用高效可靠的消息傳遞機(jī)制進(jìn)行平臺(tái)無(wú)關(guān)的數(shù)據(jù)交流,并基于數(shù)據(jù)通信來(lái)進(jìn)行分布式系統(tǒng)的集成,通過(guò)提供消息傳遞和消息排隊(duì)模型,它可以在分布式環(huán)境下擴(kuò)展進(jìn)程間的通信。因而,在業(yè)務(wù)流程執(zhí)行前,為便于對(duì)該業(yè)務(wù)流程進(jìn)行相關(guān)記錄標(biāo)記,可先部署好一個(gè)消息中間件,該消息中間件可以是redis(redis是一個(gè)開(kāi)源的使用ansic語(yǔ)言編寫(xiě)、支持網(wǎng)絡(luò)、可基于內(nèi)存亦可持久化的日志型、key-value數(shù)據(jù)庫(kù),并提供多種語(yǔ)言的api)或者kafka(kafka是一種高吞吐量的分布式發(fā)布訂閱消息系統(tǒng),它可以處理消費(fèi)者規(guī)模的網(wǎng)站中的所有動(dòng)作流數(shù)據(jù))或者其他支持消息應(yīng)答取消功能的消息中間件。消息中間件設(shè)置有主隊(duì)列及失敗隊(duì)列,其中,主隊(duì)列用于存放正常的記錄信息,失敗隊(duì)列用于存放出現(xiàn)執(zhí)行異常的記錄信息。步驟s2:每一業(yè)務(wù)流程執(zhí)行前,先向消息中間件的主隊(duì)列中發(fā)送一條記錄信息,以記錄將要執(zhí)行的業(yè)務(wù)流程。具體地,整個(gè)業(yè)務(wù)流程一般包括多個(gè)執(zhí)行步驟,如保存數(shù)據(jù)庫(kù),保存緩存,或者其他的業(yè)務(wù)操作等,而確保每一業(yè)務(wù)流程的每個(gè)執(zhí)行步驟都最終執(zhí)行成功,以使得流程數(shù)據(jù)最終保持一致性,可在每一業(yè)務(wù)流程執(zhí)行前,先向消息中間件的主隊(duì)列中發(fā)送一條記錄信息,以記錄將要執(zhí)行的業(yè)務(wù)流程,該記錄信息具體可記錄“將要執(zhí)行的業(yè)務(wù)流程是什么流程?”“該業(yè)務(wù)流程包括哪些執(zhí)行步驟?”等等信息。步驟s3:每一業(yè)務(wù)流程執(zhí)行后,消息中間件的主隊(duì)列將執(zhí)行失敗的業(yè)務(wù)流程的相關(guān)記錄信息轉(zhuǎn)移給消息中間件的失敗隊(duì)列。具體地,當(dāng)其向消息中間件的主隊(duì)列中發(fā)送一條記錄信息,以記錄將要執(zhí)行的業(yè)務(wù)流程后,便可依次執(zhí)行該業(yè)務(wù)流程的每一執(zhí)行步驟,在這過(guò)程中,消息中間件的主隊(duì)列的相關(guān)記錄信息可同時(shí)記錄“每一執(zhí)行步驟是否執(zhí)行成功?”等信息。當(dāng)該業(yè)務(wù)流程的每一執(zhí)行步驟均執(zhí)行成功時(shí),消息中間件的主隊(duì)列刪除相關(guān)記錄信息,或在該相關(guān)記錄信息上標(biāo)記該業(yè)務(wù)流程已處理完成,即等待該業(yè)務(wù)流程的每一執(zhí)行步驟都執(zhí)行成功之后,發(fā)送響應(yīng)信息至消息中間件的主隊(duì)列中,由消息中間件的主隊(duì)列刪除相對(duì)應(yīng)的記錄信息,或在該相對(duì)應(yīng)的記錄信息上標(biāo)記該業(yè)務(wù)流程已處理完成。而當(dāng)該業(yè)務(wù)流程的任一執(zhí)行步驟執(zhí)行失敗時(shí),消息中間件的主隊(duì)列將相關(guān)記錄信息發(fā)送給消息中間件的失敗隊(duì)列后,再進(jìn)行相關(guān)記錄信息刪除,即如果整個(gè)業(yè)務(wù)流程執(zhí)行過(guò)程中出現(xiàn)任何一個(gè)步驟失敗時(shí),則消息中間件的主隊(duì)列先將該業(yè)務(wù)流程的相關(guān)記錄信息寫(xiě)入消息中間件的失敗隊(duì)列,再響應(yīng)消息中間件的主隊(duì)列,刪除消息中間件的主隊(duì)列中的相關(guān)記錄信息。步驟s4:處理消息中間件的失敗隊(duì)列時(shí),根據(jù)消息中間件的失敗隊(duì)列的相關(guān)記錄信息重新開(kāi)始執(zhí)行相應(yīng)的業(yè)務(wù)流程。具體地,程序可設(shè)置一個(gè)額外的線程專(zhuān)門(mén)針對(duì)消息中間件的失敗隊(duì)列進(jìn)行處理。當(dāng)處理消息中間件的失敗隊(duì)列時(shí),可先刪除消息中間件的失敗隊(duì)列的相關(guān)記錄信息相應(yīng)的業(yè)務(wù)流程可能已經(jīng)執(zhí)行過(guò)的步驟,再重新開(kāi)始執(zhí)行相應(yīng)的業(yè)務(wù)流程,由于該相關(guān)記錄信息可對(duì)該業(yè)務(wù)流程的每一執(zhí)行步驟的執(zhí)行進(jìn)行相關(guān)記錄,根據(jù)這些相關(guān)記錄,可知道該業(yè)務(wù)流程可能已經(jīng)執(zhí)行過(guò)的步驟有哪些,此時(shí),可先將這些步驟執(zhí)行過(guò)的操作都刪除掉,以便重新開(kāi)始執(zhí)行該業(yè)務(wù)流程;亦可根據(jù)記錄信息直接重新開(kāi)始執(zhí)行相應(yīng)的業(yè)務(wù)流程,以進(jìn)行數(shù)據(jù)覆蓋寫(xiě)入,即無(wú)視之前該業(yè)務(wù)流程已經(jīng)執(zhí)行過(guò)什么步驟,直接重新開(kāi)始執(zhí)行一次該業(yè)務(wù)流程,以對(duì)之前的數(shù)據(jù)進(jìn)行覆蓋寫(xiě)入。這樣一來(lái),便可形成一種“執(zhí)行失敗的業(yè)務(wù)流程可重新執(zhí)行,直至該業(yè)務(wù)流程最終執(zhí)行成功為止”的機(jī)制,如此一來(lái),便可確保每一業(yè)務(wù)流程最終執(zhí)行成功,進(jìn)而使得流程數(shù)據(jù)最終保持一致性。本發(fā)明提出的一種實(shí)現(xiàn)數(shù)據(jù)一致性的方法及系統(tǒng)、計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其通過(guò)消息中間件的主隊(duì)列來(lái)對(duì)每一業(yè)務(wù)流程的執(zhí)行進(jìn)行相關(guān)記錄,并將執(zhí)行失敗的業(yè)務(wù)流程的相關(guān)記錄信息轉(zhuǎn)移到消息中間件的失敗隊(duì)列,以便后續(xù)對(duì)失敗隊(duì)列的記錄信息的相關(guān)業(yè)務(wù)流程進(jìn)行重新執(zhí)行,進(jìn)而形成一種“執(zhí)行失敗的業(yè)務(wù)流程可重新執(zhí)行,直至該業(yè)務(wù)流程最終執(zhí)行成功為止”的機(jī)制,如此一來(lái),便可確保每一業(yè)務(wù)流程最終執(zhí)行成功,進(jìn)而使得流程數(shù)據(jù)最終保持一致性。需要說(shuō)明的是,在本文中,術(shù)語(yǔ)“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過(guò)程、方法、物品或者裝置不僅包括那些要素,而且還包括沒(méi)有明確列出的其他要素,或者是還包括為這種過(guò)程、方法、物品或者裝置所固有的要素。在沒(méi)有更多限制的情況下,由語(yǔ)句“包括一個(gè)……”限定的要素,并不排除在包括該要素的過(guò)程、方法、物品或者裝置中還存在另外的相同要素。上述本發(fā)明實(shí)施例序號(hào)僅僅為了描述,不代表實(shí)施例的優(yōu)劣。通過(guò)以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到上述實(shí)施例方法可借助軟件加必需的通用硬件平臺(tái)的方式來(lái)實(shí)現(xiàn),當(dāng)然也可以通過(guò)硬件,但很多情況下前者是更佳的實(shí)施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)(如rom/ram、磁碟、光盤(pán))中,包括若干指令用以使得一臺(tái)終端設(shè)備(可以是手機(jī),計(jì)算機(jī),服務(wù)器,空調(diào)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述的方法。以上僅為本發(fā)明的優(yōu)選實(shí)施例,并非因此限制本發(fā)明的專(zhuān)利范圍,凡是利用本發(fā)明說(shuō)明書(shū)及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運(yùn)用在其他相關(guān)的
技術(shù)領(lǐng)域
:,均同理包括在本發(fā)明的專(zhuān)利保護(hù)范圍內(nèi)。當(dāng)前第1頁(yè)12當(dāng)前第1頁(yè)12
當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1