System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內(nèi)的位置。 參數(shù)名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現(xiàn)步驟摘要】
本公開涉及數(shù)據(jù)處理,尤其涉及一種分布式事務的處理方法和裝置。
技術介紹
1、分布式事務是指在分布式系統(tǒng)中,由于數(shù)據(jù)分布在不同的服務或節(jié)點上,因此需要確保在多個服務之間進行的操作能夠保證數(shù)據(jù)的一致性和完整性的場景。try-confirm-cancel(嘗試-確認-取消,tcc)是一種基于補償機制的分布式事務模型,它將一個分布式事務拆分為三個階段:try(嘗試)階段、confirm(確認)階段和cancel(取消)階段,來確保事務的原子性和最終一致性。其中,每個事務參與者(服務)都需要提供這三個階段對應的業(yè)務邏輯,以保證在不同情況下能夠達到數(shù)據(jù)的最終一致性。
2、相關技術中,tcc分布式事務組件是將tcc主事務的流水獨立登記,與子事務的流水區(qū)分開來,且在tcc主事務包括有多個子事務時,會串行的調(diào)用與多個子事務關聯(lián)的tcc事務參與者的try接口,來實現(xiàn)依次實現(xiàn)多個子事務的具體事務操作和資源預留操作(如鎖定賬戶余額、檢查賬戶狀態(tài)等)。
3、然而上述實現(xiàn)方式,會導致tcc性能較差,特別是在子事務數(shù)量較多時,需要依次調(diào)用多個try接口,并在數(shù)據(jù)庫中登記多條流水信息,耗時較長,無法滿足對性能要求比較高的高并發(fā)事務處理場景。
技術實現(xiàn)思路
1、本公開旨在至少在一定程度上解決相關技術中的技術問題之一。
2、本公開的一個方面提出一種分布式事務的處理方法和裝置,以實現(xiàn)降低事務處理耗時,減少數(shù)據(jù)庫的寫入次數(shù)和事務日志的大小,降低數(shù)據(jù)庫的i/o(input/output,
3、本公開第一方面實施例提出了一種分布式事務的處理方法,包括:
4、根據(jù)接收到的交易請求,注冊分布式事務的第一主事務;
5、并行執(zhí)行第一業(yè)務處理分支及第二業(yè)務處理分支;其中,所述第一業(yè)務處理分支包括在數(shù)據(jù)庫中登記所述第一主事務的流水,及執(zhí)行與所述第一主事務中的本地子事務關聯(lián)的事務操作和資源預留操作;所述第二業(yè)務處理分支包括執(zhí)行與所述第一主事務中的非本地子事務關聯(lián)的事物操作和資源預留操作;
6、響應于所述第一業(yè)務處理分支及所述第二業(yè)務處理分支均執(zhí)行成功,執(zhí)行事務確認任務;其中,所述事務確認任務用于確認并提交所述第一主事務中多個子事務的事務操作,并釋放為所述多個子事務預留的資源;
7、響應于所述事務確認任務執(zhí)行成功,將所述數(shù)據(jù)庫中的第一主事務的流水狀態(tài)更新為成功。
8、本公開第二方面實施例提出了一種分布式事務的處理裝置,包括:
9、注冊模塊,用于根據(jù)接收到的交易請求,注冊分布式事務的第一主事務;
10、第一執(zhí)行模塊,用于并行執(zhí)行第一業(yè)務處理分支及第二業(yè)務處理分支;其中,所述第一業(yè)務處理分支包括在數(shù)據(jù)庫中登記所述第一主事務的流水,及執(zhí)行與所述第一主事務中的本地子事務關聯(lián)的事務操作和資源預留操作;所述第二業(yè)務處理分支包括執(zhí)行與所述第一主事務中的非本地子事務關聯(lián)的事物操作和資源預留操作;
11、第二執(zhí)行模塊,用于響應于所述第一業(yè)務處理分支及所述第二業(yè)務處理分支均執(zhí)行成功,執(zhí)行事務確認任務;其中,所述事務確認任務用于確認并提交所述第一主事務中多個子事務的事務操作,并釋放為所述多個子事務預留的資源;
12、更新模塊,用于響應于所述事務確認任務執(zhí)行成功,將所述數(shù)據(jù)庫中的第一主事務的流水狀態(tài)更新為成功。
13、本公開第三方面實施例提出了一種電子設備,包括:存儲器、處理器及存儲在存儲器上并可在處理器上運行的計算機程序,所述處理器執(zhí)行所述程序時,實現(xiàn)如本公開第一方面實施例提出的分布式事務的處理方法。
14、本公開第四方面實施例提出了一種非臨時性計算機可讀存儲介質(zhì),其上存儲有計算機程序,該程序被處理器執(zhí)行時實現(xiàn)如本公開第一方面實施例提出的分布式事務的處理方法。
15、本公開第五方面實施例提出了一種計算機程序產(chǎn)品,當所述計算機程序產(chǎn)品中的指令由處理器執(zhí)行時,執(zhí)行如本公開第一方面實施例提出的分布式事務的處理方法。
16、本公開上述實施例提供的技術方案至少帶來以下有益效果:
17、通過并行執(zhí)行第一業(yè)務處理分支和第二業(yè)務處理分支,可以提升分布式事務的處理效率,即,分布式事務的主事務中的多個子事務的try階段可并行執(zhí)行,可以降低事務處理耗時。進一步地,在同一事務中執(zhí)行本地子事務的try階段和登記主事務的流水(即,在第一業(yè)務處理分支中同時執(zhí)行本地子事務的try階段和登記主事務的流水),可實現(xiàn)將主事務的流水和本地子事務的流水合并為一個事務進行提交,減少數(shù)據(jù)庫的寫入次數(shù)和事務日志的大小,從而降低了數(shù)據(jù)庫的i/o開銷。
18、本公開附加的方面和優(yōu)點將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本公開的實踐了解到。
本文檔來自技高網(wǎng)...【技術保護點】
1.一種分布式事務的處理方法,其特征在于,包括:
2.根據(jù)權利要求1所述的方法,其特征在于,所述第一主事務中的每個子事務與一個事務參與者關聯(lián),執(zhí)行第一業(yè)務處理分支,包括:
3.根據(jù)權利要求1所述的方法,其特征在于,所述第一主事務包括N個子事務,其中,N為正整數(shù),每個所述子事務與一個事務參與者關聯(lián),所述執(zhí)行事務確認任務,包括:
4.根據(jù)權利要求1所述的方法,其特征在于,所述方法還包括:
5.根據(jù)權利要求4所述的方法,其特征在于,所述第一主事務包括N個子事務,其中,N為正整數(shù),每個所述子事務與一個事務參與者關聯(lián),所述執(zhí)行第一回滾任務,包括:
6.根據(jù)權利要求1所述的方法,其特征在于,所述方法還包括:
7.根據(jù)權利要求1-6中任一項所述的方法,其特征在于,所述方法還包括:
8.根據(jù)權利要求1-6中任一項所述的方法,其特征在于,所述方法還包括:
9.根據(jù)權利要求8所述的方法,其特征在于,所述方法還包括:
10.一種分布式事務的處理裝置,其特征在于,包括:
【技術特征摘要】
1.一種分布式事務的處理方法,其特征在于,包括:
2.根據(jù)權利要求1所述的方法,其特征在于,所述第一主事務中的每個子事務與一個事務參與者關聯(lián),執(zhí)行第一業(yè)務處理分支,包括:
3.根據(jù)權利要求1所述的方法,其特征在于,所述第一主事務包括n個子事務,其中,n為正整數(shù),每個所述子事務與一個事務參與者關聯(lián),所述執(zhí)行事務確認任務,包括:
4.根據(jù)權利要求1所述的方法,其特征在于,所述方法還包括:
5.根據(jù)權利要求4所述的方法,其特征在于,所述第...
【專利技術屬性】
技術研發(fā)人員:潘令,徐澤,龐永華,華煜,
申請(專利權)人:四川農(nóng)村商業(yè)聯(lián)合銀行股份有限公司,
類型:發(fā)明
國別省市:
還沒有人留言評論。發(fā)表了對其他瀏覽者有用的留言會獲得科技券。