[發明專利]一種基于消息隊列的分布式事務處理方法及系統在審
| 申請號: | 201911404579.7 | 申請日: | 2019-12-31 |
| 公開(公告)號: | CN111158933A | 公開(公告)日: | 2020-05-15 |
| 發明(設計)人: | 王海峰 | 申請(專利權)人: | 易票聯支付有限公司 |
| 主分類號: | G06F9/54 | 分類號: | G06F9/54 |
| 代理公司: | 廣州嘉權專利商標事務所有限公司 44205 | 代理人: | 譚英強;黎揚鵬 |
| 地址: | 510000 廣東省廣*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 消息 隊列 分布式 事務處理 方法 系統 | ||
本發明公開了一種基于消息隊列的分布式事務處理方法及系統,方法包括:對發送的消息進行順序編號;將發送的消息及其順序編號寫入發送日志;發送消息給服務端,使服務端獲取消息的順序編號并與第一數據庫中存儲的順序編號進行比較,當二者的順序編號不連續則確定缺漏的起始順序編號和結束順序編號,當二者的順序編號連續則將消息發送給消息隊列;根據起始順序編號和結束順序編號從發送日志中獲取缺漏數據,并將缺漏數據發送給服務端。本發明利用了發送日志和在第一數據庫這一非關系型數據庫中存儲的順序編號來保證消息發送成功,從而確保了消息隊列與業務系統的數據一致性,也簡化了業務系統的開發過程。本發明可廣泛應用于計算機技術領域。
技術領域
本發明涉及計算機技術領域,尤其是一種基于消息隊列的分布式事務處理方法及系統。
背景技術
隨著互聯網及計算機技術的不斷發展,分布式系統以其高擴展性、高可用性、高可靠性及高效性等特點被廣泛應用。隨著IT(Information Technology,信息技術)系統的復雜度越來越高,為解決分布式系統的性能和數據問題,通過事件源構建業務系統越來越重要,MQ(messagequeue,消息隊列)因具有解耦、異步等優點在事件源中也被大規模使用。
然而,傳統的MQ不支持基于關系型數據庫的事務,導致MQ與業務系統數據存在一致性的問題,也增加業務系統開發的復雜性。
發明內容
本發明旨在至少解決現有技術中存在的技術問題之一。為此,本發明提出了一種基于消息隊列的分布式事務處理方法及系統,能保證消息發送成功以及數據的一致性。
根據本發明的第一方面實施例的一種基于消息隊列的分布式事務處理方法,用于發送端,包括以下步驟:
對發送的消息進行順序編號;
將發送的消息及其順序編號寫入發送日志;
發送消息給服務端,使所述服務端獲取所述消息的順序編號并與第一數據庫中存儲的順序編號進行比較,當二者的順序編號不連續則確定缺漏的起始順序編號和結束順序編號,當二者的順序編號連續則將所述消息發送給消息隊列;
根據所述起始順序編號和所述結束順序編號從所述發送日志中獲取缺漏數據,并將所述缺漏數據發送給所述服務端;
其中,所述第一數據庫為非關系型數據庫。
進一步,所述將發送的消息及其順序編號寫入發送日志這一步驟,具體為:
在發送日志中寫入發送時間、順序編號、發送端標識、消息的散列值和消息內容。
進一步,所述根據所述起始順序編號和所述結束順序編號從所述發送日志中獲取缺漏數據,并將所述缺漏數據發送給所述服務端這一步驟,具體包括:
將所述起始順序編號和所述結束順序編號加入數據缺漏任務處理列表并發送給數據修復線程;
通過所述數據修復線程根據所述起始順序編號和所述結束順序編號解析所述發送日志,獲取缺漏數據;
將所述缺漏數據重新發送給所述服務端。
根據本發明的第二方面實施例的一種基于消息隊列的分布式事務處理方法,用于服務端,包括以下步驟:
接收發送端發送的消息;
獲取所述消息的順序編號作為當前編號;
從第一數據庫中獲取存儲的所述發送端的順序編號作為上一次編號;
確定所述當前編號與所述上一次編號為不連續的編號,將缺漏的起始順序編號和結束順序編號返回給發送端,使發送端根據所述起始順序編號和所述結束順序編號從所述消息的發送日志中獲取缺漏數據后重新發送給服務端;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于易票聯支付有限公司,未經易票聯支付有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201911404579.7/2.html,轉載請聲明來源鉆瓜專利網。





