亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種事務(wù)消息的處理方法和裝置的制造方法

文檔序號(hào):9828297閱讀:216來(lái)源:國(guó)知局
一種事務(wù)消息的處理方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本申請(qǐng)涉及消息處理的技術(shù)領(lǐng)域,特別是涉及一種事務(wù)消息的處理方法和一種事務(wù)消息的處理裝置。
【背景技術(shù)】
[0002]在分布式的網(wǎng)絡(luò)環(huán)境下,業(yè)務(wù)系統(tǒng)之間需要進(jìn)行消息的交互以完成關(guān)聯(lián)的業(yè)務(wù),為了降低業(yè)務(wù)系統(tǒng)之間的耦合性,通常采用異步可靠消息來(lái)進(jìn)行消息的交互。異步可靠消息一般分為普通消息和事務(wù)消息。普通消息與發(fā)送結(jié)果不綁定。作為發(fā)送端的業(yè)務(wù)系統(tǒng),在執(zhí)行本地事務(wù)時(shí),不依賴普通消息的發(fā)送結(jié)果,即使普通消息發(fā)送失敗,也可以按照本地事務(wù)的業(yè)務(wù)處理邏輯繼續(xù)執(zhí)行相應(yīng)的操作。由于不能保證普通消息的發(fā)送結(jié)果和本地事務(wù)的業(yè)務(wù)處理邏輯的一致性,因此,在對(duì)一致性要求嚴(yán)格的場(chǎng)景通常選用事務(wù)消息。事務(wù)消息與發(fā)送結(jié)果綁定。在執(zhí)行本地事務(wù)時(shí),依賴事務(wù)消息的發(fā)送結(jié)果,即事務(wù)消息發(fā)送結(jié)果和本地事務(wù)的業(yè)務(wù)處理邏輯保持一致。
[0003]在具體實(shí)現(xiàn)中,如果發(fā)送端發(fā)事務(wù)消息失敗,則需要回滾本地事務(wù),此外,如果在發(fā)送端本地事務(wù)執(zhí)行失敗,也需要回滾事務(wù)消息,以保證發(fā)送結(jié)果和本地事務(wù)的業(yè)務(wù)處理邏輯的一致性。目前事務(wù)消息一般采用兩階段提交的方式,并將事務(wù)消息的狀態(tài)分為未決狀態(tài)和已提交狀態(tài)。事務(wù)消息兩階段提交的方式具體為:
[0004]第一階段,在發(fā)送端進(jìn)行本地事務(wù)的處理時(shí)操作業(yè)務(wù)數(shù)據(jù)庫(kù),并將本地事務(wù)于事務(wù)消息綁定,在本地事務(wù)執(zhí)行過(guò)程中發(fā)送未決狀態(tài)的事務(wù)消息到消息服務(wù)器,消息服務(wù)器將該事務(wù)消息持久化到消息數(shù)據(jù)庫(kù);
[0005]第二階段,在發(fā)送端確定事務(wù)消息是提交或者回滾,此時(shí)會(huì)發(fā)送指示提交或回滾的消息到消息服務(wù)器,如果是指示回滾的消息,消息服務(wù)器會(huì)刪除先前持久化到消息數(shù)據(jù)庫(kù)的未決狀態(tài)消息,如果是指示提交的消息,消息服務(wù)器會(huì)將事務(wù)消息的狀態(tài)從未決狀態(tài)更新為已提交狀態(tài),然后再進(jìn)行投遞。
[0006]如果在第二階段的事務(wù)消息發(fā)送失敗,消息服務(wù)器會(huì)回查發(fā)送端咨詢事務(wù)消息的狀態(tài),消息服務(wù)器咨詢?cè)撌聞?wù)消息的狀態(tài)后,決定對(duì)事務(wù)消息是要提交還是回滾。
[0007]由此可知,事務(wù)消息的兩階段提交方式的缺點(diǎn)主要有:
[0008]1、消息量倍增。由于事務(wù)消息是兩階段提交,而每一個(gè)階段都需要發(fā)送一條事務(wù)消息,這意味著執(zhí)行本地事務(wù)過(guò)程中的一次事務(wù)消息的發(fā)送動(dòng)實(shí)際上需要發(fā)送用兩次才能發(fā)送,從而使消息量增加了一倍,加重了網(wǎng)絡(luò)負(fù)載、消息服務(wù)器負(fù)擔(dān)以及消息數(shù)據(jù)庫(kù)的事務(wù)消息數(shù)。
[0009]2、需要實(shí)現(xiàn)回查邏輯。如果第二階段的事務(wù)消息未能成功發(fā)送到消息服務(wù)器,消息服務(wù)器需要回查發(fā)送端,以決定事務(wù)消息的提交或回滾。實(shí)現(xiàn)事務(wù)消息回查邏輯,實(shí)現(xiàn)較為復(fù)雜,且需要一定的代價(jià)。
[0010]因此,目前需要本領(lǐng)域技術(shù)人員迫切解決的一個(gè)技術(shù)問(wèn)題就是:提出一種事務(wù)消息的處理機(jī)制,用以以較小的代價(jià)保證事務(wù)消息的發(fā)送結(jié)果和事務(wù)的業(yè)務(wù)處理邏輯的一致性。
[0011]申請(qǐng)內(nèi)容
[0012]本申請(qǐng)實(shí)施例所要解決的技術(shù)問(wèn)題是提供一種事務(wù)消息的處理方法,用以以較小的代價(jià)保證事務(wù)消息的發(fā)送結(jié)果和事務(wù)的業(yè)務(wù)處理邏輯的一致性。
[0013]相應(yīng)的,本申請(qǐng)實(shí)施例還提供了一種事務(wù)消息的處理裝置,用以保證上述方法的實(shí)現(xiàn)及應(yīng)用。
[0014]為了解決上述問(wèn)題,本申請(qǐng)公開(kāi)了一種事務(wù)消息的處理方法,所述的方法包括:
[0015]生成事務(wù)消息;
[0016]針對(duì)所述事務(wù)消息添加指定的處理狀態(tài)標(biāo)識(shí);
[0017]將所述事務(wù)消息發(fā)送至消息服務(wù)器;所述消息服務(wù)器用于依據(jù)所述處理狀態(tài)標(biāo)識(shí)將所述事務(wù)消息進(jìn)行投遞;
[0018]若成功投遞所述事務(wù)消息,則所述消息服務(wù)器用于刪除所述事務(wù)消息。
[0019]優(yōu)選地,在針對(duì)所述事務(wù)消息添加指定的處理狀態(tài)標(biāo)識(shí)的步驟之后,還包括:
[0020]將所述具有處理狀態(tài)標(biāo)識(shí)的事務(wù)消息存儲(chǔ)到預(yù)設(shè)的數(shù)據(jù)庫(kù)中。
[0021]優(yōu)選地,所述方法還包括:
[0022]判斷是否將所述具有指定的處理狀態(tài)標(biāo)識(shí)的事務(wù)消息發(fā)送至消息服務(wù)器;
[0023]若是,則執(zhí)行所述將事務(wù)消息發(fā)送至消息服務(wù)器的步驟;
[0024]若否,則刪除所述事務(wù)消息。
[0025]本申請(qǐng)實(shí)施例還公開(kāi)了一種事務(wù)消息的處理方法,包括:
[0026]接收到發(fā)送端發(fā)送的具有指定的處理狀態(tài)標(biāo)識(shí)的事務(wù)消息;
[0027]依據(jù)所述處理狀態(tài)標(biāo)識(shí)投遞所述事務(wù)消息;
[0028]若成功投遞所述事務(wù)消息,則接收到針對(duì)所述事務(wù)消息的通知;
[0029]依據(jù)所述通知?jiǎng)h除發(fā)送端的事務(wù)消息。
[0030]優(yōu)選地,所述方法還包括:
[0031]若投遞所述事務(wù)消息失敗,則生成針對(duì)所述事務(wù)消息的投遞狀態(tài)信息;所述投遞狀態(tài)信息包括投遞次數(shù)、下次投遞時(shí)間和/或接收端的標(biāo)識(shí)。
[0032]優(yōu)選地,所述方法還包括:
[0033]按照預(yù)設(shè)時(shí)間間隔從所述發(fā)送端獲取所述指定的處理狀態(tài)標(biāo)識(shí)的事務(wù)消息;
[0034]重新嘗試投遞所述事務(wù)消息。
[0035]本申請(qǐng)實(shí)施例還公開(kāi)了一種事務(wù)消息的處理裝置,所述的裝置包括:
[0036]第一生成模塊,用于生成事務(wù)消息,并針對(duì)所述事務(wù)消息添加指定的處理狀態(tài)標(biāo)識(shí);
[0037]發(fā)送模塊,用于將所述事務(wù)消息發(fā)送至消息服務(wù)器;所述消息服務(wù)器用于依據(jù)所述處理狀態(tài)標(biāo)識(shí)將所述事務(wù)消息進(jìn)行投遞;
[0038]第一接收模塊,用于若成功投遞所述事務(wù)消息,則所述消息服務(wù)器用于刪除所述事務(wù)消息。
[0039]優(yōu)選地,所述裝置還包括:
[0040]存儲(chǔ)模塊,用于將所述具有處理狀態(tài)標(biāo)識(shí)的事務(wù)消息存儲(chǔ)到預(yù)設(shè)的數(shù)據(jù)庫(kù)中。[0041 ]優(yōu)選地,所述裝置還包括:
[0042]判斷模塊,用于判斷是否將所述指定的處理狀態(tài)標(biāo)識(shí)的事務(wù)消息發(fā)送至消息服務(wù)器;若是,則調(diào)用發(fā)送模塊;若否,則刪除所述事務(wù)消息。
[0043]本申請(qǐng)實(shí)施例還公開(kāi)了一種事務(wù)消息的處理裝置,包括:
[0044]第二接收模塊,用于接收到發(fā)送端發(fā)送的具有指定的處理狀態(tài)標(biāo)識(shí)的事務(wù)消息;
[0045]第一投遞模塊,用于依據(jù)所述處理狀態(tài)標(biāo)識(shí)投遞所述事務(wù)消息;
[0046]通知模塊,用于若成功投遞所述事務(wù)消息,則接收到針對(duì)所述事務(wù)消息的通知;
[0047]刪除模塊,用于依據(jù)所述通知?jiǎng)h除發(fā)送端的事務(wù)消息。
[0048]優(yōu)選地,所述裝置還包括:
[0049]第二生成模塊,用于若投遞所述事務(wù)消息失敗,則生成針對(duì)所述事務(wù)消息的投遞狀態(tài)信息;所述投遞狀態(tài)信息包括投遞次數(shù)、下次投遞時(shí)間和/或接收端的標(biāo)識(shí)。
[0050]優(yōu)選地,所述裝置還包括:
[0051]獲取模塊,用于按照預(yù)設(shè)時(shí)間間隔從所述發(fā)送端獲取所述指定的處理狀態(tài)標(biāo)識(shí)的事務(wù)消息;
[0052]第二投遞模塊,用于重新嘗試投遞所述事務(wù)消息。
[0053]與現(xiàn)有技術(shù)相比,本申請(qǐng)實(shí)施例包括以下優(yōu)點(diǎn):
[0054]在本申請(qǐng)實(shí)施例中,在本地業(yè)務(wù)系統(tǒng)執(zhí)行事務(wù)的過(guò)程中生成事務(wù)消息,并且為該事務(wù)消息添加指定的處理狀態(tài)標(biāo)識(shí),當(dāng)事務(wù)消息發(fā)送至消息服務(wù)器時(shí),消息服務(wù)器則可以依據(jù)所述處理狀態(tài)標(biāo)識(shí)將所述事務(wù)消息進(jìn)行投遞,如果消息服務(wù)器成功將事務(wù)消息投遞到目標(biāo)業(yè)務(wù)系統(tǒng),則消息服務(wù)器接收到目標(biāo)業(yè)務(wù)系統(tǒng)發(fā)送的通知,并依據(jù)該通知?jiǎng)h除事務(wù)消息。在傳統(tǒng)的事務(wù)消息的處理過(guò)程中,由于事務(wù)消息是兩階段提交,而每一個(gè)階段都需
當(dāng)前第1頁(yè)1 2 3 4 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1