[發明專利]一種保持數據一致性的方法和裝置有效
| 申請號: | 202010047460.5 | 申請日: | 2020-01-16 |
| 公開(公告)號: | CN111277639B | 公開(公告)日: | 2022-08-09 |
| 發明(設計)人: | 曹經彪 | 申請(專利權)人: | 中國建設銀行股份有限公司;建信金融科技有限責任公司 |
| 主分類號: | H04L67/02 | 分類號: | H04L67/02;H04L67/1097;H04L67/60 |
| 代理公司: | 中原信達知識產權代理有限責任公司 11219 | 代理人: | 王安娜;陳繼越 |
| 地址: | 100033 *** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 保持 數據一致性 方法 裝置 | ||
本發明公開了一種保持數據一致性的方法和裝置,涉及計算機技術領域。該方法的一具體實施方式包括:攔截業務請求,并查詢業務請求調用的服務組合;在調用原子服務時,將業務請求對應的原子服務按調用順序記錄于服務流水表;當任一原子服務調用異?;蛘{用失敗時,基于服務流水表生成并按反向調用順序發送沖正報文,以對原子服務進行沖正。該實施方式能夠滿足日趨復雜的組合服務的一致性處理,使用上不存在現有技術的局限性,以及性能穩定且處理效率較高。
技術領域
本發明涉及計算機技術領域,尤其涉及一種保持數據一致性的方法和裝置。
背景技術
對于組合多個系統服務的業務流程,由于整個業務流程中出現了多個服務的相互調用,涉及多個系統的事務處理,必須保證事務的一致性,必須確保全部成功或者全部失敗,而不允許出現部分成功部分失敗的情況。當組合服務不一致場景發生后,需要第一時間通過系統自動的方法糾正不一致信息,保證組合服務前后一致。
可能導致組合服務不一致性的情況包括:網絡故障導致后端服務系統超時,前端系統無法收到響應信息;后端系統故障,導致前端系統無法收到響應信息;以及后端系統報錯等等。
現有的針對分布式組合服務的一致性處理,主要是采用兩階段或三階段提交等處理方式,但是這些處理方式存在一定局限性,并不適合目前日趨復雜的組合服務的處理,特別是各種微服務架構的分布式處理。
發明內容
有鑒于此,本發明實施例提供一種保持數據一致性的方法和裝置,能夠滿足日趨復雜的組合服務的一致性處理,使用上不存在現有技術的局限性,以及性能穩定且處理效率較高。
為實現上述目的,根據本發明實施例的一個方面,提供了一種保持數據一致性的方法。
本發明實施例的一種保持數據一致性的方法包括:
攔截業務請求,并查詢所述業務請求調用的服務組合;其中,所述服務組合包括按調用順序排列的用于處理所述業務請求的原子服務;
在調用所述原子服務時,將所述業務請求對應的原子服務按調用順序記錄于服務流水表;
當任一所述原子服務調用異常或調用失敗時,基于所述服務流水表生成并按所述反向調用順序發送沖正報文,以對所述原子服務進行沖正。
可選地,在調用所述原子服務時,將所述業務請求對應的原子服務按調用順序記錄于服務流水表,包括:
攔截所述原子服務;
對所述原子服務進行服務流水處理,得到所述原子服務的服務數據;其中,所述服務數據包括所述業務請求及其對應的用戶、服務時間、交易金額、業務流水號和服務狀態;
若所述原子服務為預設服務,則將所述服務數據記錄于服務流水表;其中,所述服務流水表記錄有所述原子服務及其對應的服務碼和所述服務數據。
可選地,當任一所述原子服務調用異?;蛘{用失敗時,將所述業務請求對應的原子服務和沖正信息按服務調用順序記錄于服務流水表,包括:
在所述服務流水表中查詢所述業務請求調用的所有原子服務,以及基于所述服務狀態確定各個原子服務的服務狀態;
當任一所述原子服務的服務狀態為調用異常或調用失敗時,判斷所述業務請求是否要求業務一致性;
當要求業務一致性時,基于所述服務流水表生成并按所述反向調用順序發送沖正報文,以對所述原子服務進行沖正。
可選地,基于所述服務流水表生成并按所述反向調用順序發送沖正報文,以對所述原子服務進行沖正,包括:
從所述合服務處理內存對象中獲取所述原子服務的業務流水號;
根據所述業務流水號從所述服務流水表獲取所述原子服務的服務碼和服務數據;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國建設銀行股份有限公司;建信金融科技有限責任公司,未經中國建設銀行股份有限公司;建信金融科技有限責任公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010047460.5/2.html,轉載請聲明來源鉆瓜專利網。





