[發明專利]事務處理方法、裝置、設備及計算機可讀存儲介質在審
| 申請號: | 202010532989.6 | 申請日: | 2020-06-12 |
| 公開(公告)號: | CN111708617A | 公開(公告)日: | 2020-09-25 |
| 發明(設計)人: | 王中慰;左明德;陳天濤;孫澤輝 | 申請(專利權)人: | 京東數字科技控股有限公司 |
| 主分類號: | G06F9/46 | 分類號: | G06F9/46 |
| 代理公司: | 北京同立鈞成知識產權代理有限公司 11205 | 代理人: | 柴海平;劉芳 |
| 地址: | 100176 北京市北京經濟*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 事務處理 方法 裝置 設備 計算機 可讀 存儲 介質 | ||
本發明實施例提供一種事務處理方法、裝置、設備及計算機可讀存儲介質。本發明實施例的方法,通過在開啟本地事務后,生成本地事務的消息記錄,并將消息記錄持久化保存到對應的業務數據庫中,進行事務的預提交,并沒有真正發送消息;通過注冊Spring事務事件;在監聽到Spring發布的事務成功事件時進行事務提交,此時將消息發送出去,能夠在事務提交成功后及時地發送消息,不用等待定時任務掃描業務數據庫,既能夠及時發送消息,又能減少業務數據庫的壓力,能夠提高業務系統的性能。
技術領域
本發明實施例涉及計算機技術領域,尤其涉及一種事務處理方法、裝置、設備及計算機可讀存儲介質。
背景技術
在現代系統中,分布式事務有著多種解決方案,包括兩階段提交(Two-phaseCommit,簡稱2PC),TCC(Try-Confirm-Cancel)分布式事務機制,以及基于消息隊列(Message Queue,簡稱MQ)的最大努力通知等。
目前,基于MQ實現的分布式事務主要是基于定時任務的消息表掃描方案,主要步驟如下:開啟本地事務,業務系統執行更新業務數據庫,在同一數據庫對應的MQ表插入一條記錄,提交本地事務,定時任務掃描消息表將MQ發出。
在實現本發明過程中,發明人發現現有技術中至少存在如下問題:
基于定時任務的消息表掃描方案強依賴定時任務掃描消息表,掃描頻率太快會對業務數據庫本身造成壓力,且定時任務的掃描存在較長的時間間隔,消息觸達不及時,影響業務系統的性能。
發明內容
本發明實施例提供一種事務處理方法、裝置、設備及計算機可讀存儲介質,用以解決基于定時任務的消息表掃描方案會對業務數據庫本身造成壓力,且存在較長的時間間隔,消息觸達不及時,影響業務系統的性能的問題。
一方面,本發明實施例提供一種事務處理方法,包括:
在開啟本地事務后,生成所述本地事務的消息記錄,并將所述消息記錄保存到對應的業務數據庫中,所述消息記錄至少包括所述本地事務對應的業務通用唯一標識、待發送的消息和消息狀態;
注冊Spring事務事件;
響應于監聽到事務成功事件,進行事務提交,發送所述消息。
在一種可能的實施方式中,還包括:
若所述消息發送成功,則將所述消息記錄中的消息狀態由第一狀態更新為第二狀態,所述第一狀態用于表示消息尚未發送,所述第二狀態用于表示消息發送成功;若所述消息發送失敗,則將所述消息記錄中的消息狀態由第一狀態更新為第三狀態,所述第三狀態用于表示消息發送失敗。
在一種可能的實施方式中,所述生成所述本地事務的消息記錄之后,還包括:將所述消息記錄同步到狀態查詢服務對應的中心數據庫中;
將所述消息記錄中的消息狀態由第一狀態更新為第二狀態之后,還包括:同步更新所述中心數據庫上的所述消息記錄。
在一種可能的實施方式中,還包括:
接收所述狀態查詢服務的回調請求,所述回調請求為所述狀態查詢服務根據所述中心數據庫內消息記錄中的消息狀態發出的;根據所述回調請求中的事務標識,查詢所述業務數據庫中的目標記錄,所述目標記錄為包含所述事務標識的消息記錄;根據所述目標記錄中的消息狀態,進行對應的異常處理。
在一種可能的實施方式中,根據所述目標記錄中的消息狀態,進行對應的異常處理,包括:
若所述目標記錄中的消息狀態為第一狀態或第三狀態,則重新執行所述本地事務。
在一種可能的實施方式中,根據所述目標記錄中的消息狀態,進行對應的異常處理,包括:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于京東數字科技控股有限公司,未經京東數字科技控股有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010532989.6/2.html,轉載請聲明來源鉆瓜專利網。





