本申請涉及分布式系統(tǒng),尤其涉及一種分布式事務的處理方法及裝置。
背景技術:
1、分布式事務是指在分布式系統(tǒng)中實現(xiàn)的事務。分布式事務由多個方法組成,通過執(zhí)行多個方法便可完成分布式事務的處理。
2、目前,分布式事務常用的解決方案有:兩階段提交方案(two-phase?commit,2pc)、補償事務方案(try-confirm-cancel,tcc)等等。在采用現(xiàn)有的分布式事務解決方案對分布式事務進行處理的過程中,當分布式事務中的某個方法執(zhí)行失敗時,采用現(xiàn)有的分布式事務解決方案無法進行回滾補償處理,從而導致數(shù)據(jù)不一致的情況發(fā)生。
技術實現(xiàn)思路
1、本申請實施例提供一種分布式事務的處理方法及裝置,主要目的在于當分布式事務中的某個方法執(zhí)行失敗時,對分布式事務進行回滾補償處理,從而保證分布式事務的數(shù)據(jù)一致。
2、為解決上述技術問題,本申請實施例提供如下技術方案:
3、第一方面,本申請?zhí)峁┝艘环N分布式事務的處理方法,所述方法包括:
4、步驟s1:接收事務執(zhí)行請求,其中,所述事務接收請求中包含目標分布式事務對應的唯一標識,所述目標分布式事務包含多個方法;
5、步驟s2:根據(jù)多個所述方法對應的執(zhí)行順序,確定當前待執(zhí)行方法;
6、步驟s3:確定所述當前待執(zhí)行方法對應的回滾入?yún)ⅲ?/p>
7、步驟s4:執(zhí)行所述當前待執(zhí)行方法;
8、步驟s5:判斷所述當前待執(zhí)行方法是否執(zhí)行成功;若執(zhí)行失敗,則獲取每個已執(zhí)行方法對應的回滾入?yún)?,根?jù)每個所述已執(zhí)行方法對應的回滾入?yún)?,對所述目標分布式事務進行回滾補償處理;若執(zhí)行成功,則判斷多個所述方法是否全部執(zhí)行完畢,若否,則回到步驟s2。
9、第二方面,本申請還提供一種分布式事務的處理裝置,包括:
10、接收單元,用于接收事務執(zhí)行請求,其中,所述事務接收請求中包含目標分布式事務對應的唯一標識,所述目標分布式事務包含多個方法;
11、第一確定單元,用于根據(jù)多個所述方法對應的執(zhí)行順序,確定當前待執(zhí)行方法;
12、第二確定單元,用于確定所述當前待執(zhí)行方法對應的回滾入?yún)ⅲ?/p>
13、執(zhí)行單元,用于執(zhí)行所述當前待執(zhí)行方法;
14、判斷單元,用于判斷所述當前待執(zhí)行方法是否執(zhí)行成功;當所述當前待執(zhí)行方法執(zhí)行失敗時,獲取每個已執(zhí)行方法對應的回滾入?yún)ⅲ鶕?jù)每個所述已執(zhí)行方法對應的回滾入?yún)?,對所述目標分布式事務進行回滾補償處理;當所述當前待執(zhí)行方法執(zhí)行成功時,判斷多個所述方法是否全部執(zhí)行完畢,若否,控制所述第一確定單元、所述第二確定單元和所述執(zhí)行單元繼續(xù)執(zhí)行多個所述方法中的剩余方法。
15、第三方面,本申請的實施例提供了一種存儲介質(zhì),所述存儲介質(zhì)包括存儲的程序,其中,在所述程序運行時控制所述存儲介質(zhì)所在設備執(zhí)行第一方面所述的分布式事務的處理方法。
16、第四方面,本申請的實施例提供了一種分布式事務的處理裝置,所述裝置包括存儲介質(zhì);及一個或者多個處理器,所述存儲介質(zhì)與所述處理器耦合,所述處理器被配置為執(zhí)行所述存儲介質(zhì)中存儲的程序指令;所述程序指令運行時執(zhí)行第一方面所述的分布式事務的處理方法。
17、借由上述技術方案,本申請?zhí)峁┑募夹g方案至少具有下列優(yōu)點:
18、本申請?zhí)峁┮环N分布式事務的處理方法及裝置,本申請能夠在目標服務器接收到攜帶有目標分布式事務對應的唯一標識的事務執(zhí)行請求后,由目標服務器先根據(jù)目標分布式事務包含的多個方法對應的執(zhí)行順序,確定當前待執(zhí)行方法;其次,確定當前待執(zhí)行方法對應的回滾入?yún)?;再次,?zhí)行當前待執(zhí)行方法;最后,在執(zhí)行當前待執(zhí)行方法后,判斷當前待執(zhí)行方法是否執(zhí)行成功,若執(zhí)行失敗,則獲取每個已執(zhí)行方法對應的回滾入?yún)?,并根?jù)每個已執(zhí)行方法對應的回滾入?yún)?,對目標分布式事務進行回滾補償處理,若執(zhí)行成功,則判斷多個方法是否全部執(zhí)行完畢,若全部執(zhí)行完畢,則代表目標分布式事務已處理完畢,若未全部執(zhí)行完畢,則按照前述方法繼續(xù)執(zhí)行多個方法中的剩余方法,從而使得當分布式事務中的某個方法執(zhí)行失敗時,能夠?qū)Ψ植际绞聞者M行回滾補償處理,進而保證分布式事務的數(shù)據(jù)一致。
19、上述說明僅是本申請技術方案的概述,為了能夠更清楚了解本申請的技術手段,而可依照說明書的內(nèi)容予以實施,并且為了讓本申請的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本申請的具體實施方式。
1.一種分布式事務的處理方法,其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述確定所述當前待執(zhí)行方法對應的回滾入?yún)ⅲǎ?/p>
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述確定所述當前待執(zhí)行方法對應的回滾入?yún)?,還包括:
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述獲取每個已執(zhí)行方法對應的回滾入?yún)?,包括?/p>
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述根據(jù)每個所述已執(zhí)行方法對應的回滾入?yún)ⅲ瑢λ瞿繕朔植际绞聞者M行回滾補償處理,包括:
6.一種分布式事務的處理裝置,其特征在于,包括:
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,
9.一種存儲介質(zhì),其特征在于,所述存儲介質(zhì)包括存儲的程序,其中,在所述程序運行時控制所述存儲介質(zhì)所在設備執(zhí)行權(quán)利要求1至5中任一項所述的分布式事務的處理方法。
10.一種分布式事務的處理裝置,其特征在于,所述裝置包括存儲介質(zhì);及一個或者多個處理器,所述存儲介質(zhì)與所述處理器耦合,所述處理器被配置為執(zhí)行所述存儲介質(zhì)中存儲的程序指令;所述程序指令運行時執(zhí)行權(quán)利要求1至5中任一項所述的分布式事務的處理方法。