System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本公開涉及數據處理,尤其涉及一種分布式事務的處理方法。
技術介紹
1、分布式系統是由一組通過網絡進行通信、為了完成共同的任務而協調工作的服務節點(或計算機節點)組成的系統,由于其服務和數據的地理和邏輯分散性,使得事務管理相較于傳統的單體應用復雜得多。隨著微服務架構的興起,在實際的金融應用場景中,若干個微服務共同完成一個任務或者業務功能,離不開分布式事務的參與。其中,在面對長業務流程時,可采用saga(sequentially?consistent?autonomous?global?transactions,順序一致的自治全局事務)實現,該saga是一種基于事件驅動的分布式事務模型,可廣泛應用于微服務架構的分布式系統中,其目的是保證在分布式系統中的多個服務之間的操作是順序一致的,從而保證最終一致性。
2、相關技術中,分布式事務的處理方法需要分布式事務控制處理與業務代碼邏輯處理獨立處理,事務流程和業務流水信息都需要同時保存在數據庫中,這降低了微服務的性能,難以滿足中大型金融機構的核心業務系統高并發業務場景需求。
技術實現思路
1、本公開旨在至少在一定程度上解決相關技術中的技術問題之一。
2、本公開的一個方面提出一種分布式事務的處理方法,以實現減少流水登記的次數,提升性能。同時,分布式事務的管理基于本地流水登記系統實現,性能更優。
3、本公開第一方面實施例提出了一種分布式事務的處理方法,包括:
4、響應于接收到交易請求,確定所述交易請求的
5、基于所述目標業務流程所需執行的多個目標任務,為所述交易請求開啟分布式事務的主事務,并將所述主事務流水登記至本地數據庫;其中,所述主事務包括多個有序的子事務,每個子事務與一個目標任務對應;
6、依次遍歷所述多個有序的子事務,并根據當前遍歷的子事務是否為本地事務的判斷結果,對所述當前遍歷的子事務進行處理;
7、響應于多個所述子事務均已處理成功,結束所述主事務,并將所述本地數據庫中所述主事務流水的狀態更新為已完成狀態。
8、本公開第二方面實施例提出了一種分布式事務的處理裝置,包括:
9、確定模塊,用于響應于接收到交易請求,確定所述交易請求的交易類型所對應的目標業務流程;
10、開啟登記模塊,用于基于所述目標業務流程所需執行的多個目標任務,為所述交易請求開啟分布式事務的主事務,并將所述主事務流水登記至本地數據庫;其中,所述主事務包括多個有序的子事務,每個子事務與一個目標任務對應;
11、遍歷處理模塊,用于依次遍歷所述多個有序的子事務,并根據當前遍歷的子事務是否為本地事務的判斷結果,對所述當前遍歷的子事務進行處理;
12、結束更新模塊,用于響應于多個所述子事務均已處理成功,結束所述主事務,并將所述本地數據庫中所述主事務流水的狀態更新為已完成狀態。
13、本公開第三方面實施例提出了一種電子設備,包括:存儲器、處理器及存儲在存儲器上并可在處理器上運行的計算機程序,所述處理器執行所述程序時,實現如本公開第一方面實施例提出的分布式事務的處理方法。
14、本公開第四方面實施例提出了一種非臨時性計算機可讀存儲介質,其上存儲有計算機程序,該程序被處理器執行時實現如本公開第一方面實施例提出的分布式事務的處理方法。
15、本公開第五方面實施例提出了一種計算機程序產品,當所述計算機程序產品中的指令由處理器執行時,執行如本公開第一方面實施例提出的分布式事務的處理方法。
16、本公開上述實施例提供的技術方案至少帶來以下有益效果:
17、在處理分布式事務時,分布式事務控制處理與業務代碼邏輯處理可以共用同一流水表,即,將業務所需的服務流水與分布式事務的主事務流水合二為一,只需在本地數據庫中登錄主事務流水,可以減少流水登記的次數,提升微服務性能,以滿足中大型金融機構的核心業務系統高并發業務場景需求。其中,通過使用面向切面編程(spring?aop)技術,插入本地數據庫流水表的相關操作,可以實現不改變業務邏輯代碼,對業務邏輯代碼無侵入。同時,分布式事務的管理基于本地流水登記系統實現,如將主事務流水登記至本地數據庫,相比于傳統的外部服務或遠程調用服務實現事務管理的方式而言,減少了網絡調用產生的延遲和復雜性,性能更優。
18、此外,分布式事務的處理邏輯被封裝在sdk中,使得在業務邏輯代碼中無需單獨實現分布式事務處理。這種方法允許開發人員無需深入理解saga的復雜實現,直接通過可視化工具編排業務流程,隨后sdk自動編排分布式事務。因此,開發人員不需要專門編寫相關代碼,從而提高了開發效率和代碼質量,大大降低了分布式微服務的開發難度。
19、本公開附加的方面和優點將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本公開的實踐了解到。
本文檔來自技高網...【技術保護點】
1.一種分布式事務的處理方法,其特征在于,包括:
2.根據權利要求1所述的方法,其特征在于,所述基于所述目標業務流程所需執行的多個目標任務,為所述交易請求開啟分布式事務的主事務,包括:
3.根據權利要求2所述的方法,其特征在于,所述獲取所述目標業務流程所需執行的多個目標任務和對應的執行順序,以及對所述目標任務定義的正向API和反向API,包括:
4.根據權利要求2所述的方法,其特征在于,所述依次遍歷所述多個有序的子事務,并根據當前遍歷的子事務是否為本地事務的判斷結果,對所述當前遍歷的子事務進行處理,包括:
5.根據權利要求4所述的方法,其特征在于,所述根據所述判斷結果和所述當前遍歷的子事務對應的目標任務的正向API和反向API,對所述當前遍歷的子事務進行處理,包括:
6.根據權利要求5所述的方法,其特征在于,所述方法還包括:
7.根據權利要求4所述的方法,其特征在于,所述根據所述判斷結果和所述當前遍歷的子事務對應的目標任務的正向API和反向API,對所述當前遍歷的子事務進行處理,包括:
8.根據權
9.根據權利要求1所述的方法,其特征在于,所述將所述主事務流水登記至本地數據庫,包括:
10.根據權利要求1-9中任一項所述的方法,其特征在于,所述方法由分布式事務處理組件執行,所述分布式事務處理組件封裝有軟件開發工具包SDK,基于所述SDK中封裝的算法邏輯,執行權利要求1-9中任一項所述的方法。
...【技術特征摘要】
1.一種分布式事務的處理方法,其特征在于,包括:
2.根據權利要求1所述的方法,其特征在于,所述基于所述目標業務流程所需執行的多個目標任務,為所述交易請求開啟分布式事務的主事務,包括:
3.根據權利要求2所述的方法,其特征在于,所述獲取所述目標業務流程所需執行的多個目標任務和對應的執行順序,以及對所述目標任務定義的正向api和反向api,包括:
4.根據權利要求2所述的方法,其特征在于,所述依次遍歷所述多個有序的子事務,并根據當前遍歷的子事務是否為本地事務的判斷結果,對所述當前遍歷的子事務進行處理,包括:
5.根據權利要求4所述的方法,其特征在于,所述根據所述判斷結果和所述當前遍歷的子事務對應的目標任務的正向api和反向api,對所述當前遍歷的子事務進行處理,包括:
【專利技術屬性】
技術研發人員:丁曉平,廖曉虹,李冬航,劉姝,楊宇寧,
申請(專利權)人:四川農村商業聯合銀行股份有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。