[發明專利]一種基于消息中間件的柔性事務處理方法在審
| 申請號: | 201811304916.0 | 申請日: | 2018-11-02 |
| 公開(公告)號: | CN109471704A | 公開(公告)日: | 2019-03-15 |
| 發明(設計)人: | 楊光潤;郭春鵬;李志偉;宋偉強;喬光 | 申請(專利權)人: | 上海艾融軟件股份有限公司 |
| 主分類號: | G06F9/46 | 分類號: | G06F9/46;G06F9/54 |
| 代理公司: | 北京國昊天誠知識產權代理有限公司 11315 | 代理人: | 劉昕;南霆 |
| 地址: | 202150 上海市崇明*** | 國省代碼: | 上海;31 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 消息服務 消息中間件 事務處理 發送確認消息 中間人角色 發布消息 發送消息 業務執行 事務 | ||
本發明公開了一種基于消息中間件的柔性事務處理方法,由消息生產者發送消息到消息服務,待消息生產者本地業務執行后,再發送確認消息到消息服務,此時消息服務才真正發布消息,供消息消費者消費。本發明通過帶有事務的消息中間件(消息服務)作為中間人角色,能夠有效的保障各系統之間事務的一致性。
技術領域
本發明涉及互聯網應用的分布式事務處理的技術領域,特別是涉及一種基于消息中間件的柔性事務處理。
背景技術
分布式系統一般由多個獨立子系統組成,多個子系統通過進程間通信互相協作配合完成各個功能。有很多用例會跨多個子系統才能完成,比如電商購物網站的下單支付流程,會涉及到交易系統和支付系統,而這個過程中會涉及到事務的概念,即需要保證交易系統和支付系統的數據一致性。通常談及的事務是指單機資源的ACID屬性,無法滿足多系統間的事務要求。
柔性事務處理發放中存在以下概念和名詞:
柔性事務:指遵循BASE理論的事務,常見實現方式有:兩階段提交(2PC)、TCC補償性提交、基于消息的異步確保型、最大努力通知型。
BASE:Base IC ally Available(基本可用)、Soft state(柔性狀態)、Eventuallyconsistent(最終一致性)的三個短語的縮寫。
TCC模式:Try-Confirm-Cancel
Try:完成所有業務檢查(一致性),預留必須業務資源(準隔離性)。
Confirm:真正執行業務,不作任何業務檢查,只使用Try階段預留的業務資源,Confirm操作滿足冪等性。
Cancel:釋放Try階段預留的業務資源,Cancel操作滿足冪等性。
消息中間件:通過提供消息傳遞和消息排隊模型,可以在分布式環境下擴展進程間的通信。
發明內容
針對現有技術的不足,本發明旨在提供一種基于消息中間件的柔性事務處理方法,通過帶有事務的消息中間件作為中間人角色,能夠有效的保障各系統之間事務的一致性。
為了實現上述目的,本發明采用如下技術方案:
一種基于消息中間件的柔性事務處理方法,包括如下步驟:
S1、消息生產者在執行本地事務前預發送事務消息到消息服務,此時消息服務只記錄但不發布該事務消息;
S2、消息服務確認消息生產者預發送的事務消息接收成功后,返回接收成功的消息給消息生產者;
S3、消息生產者開始執行本地業務邏輯,如果執行失敗,通知消息服務丟棄該事務消息,如果執行成功,則提交本地事務,并通知消息服務發布事務消息給消息消費者,消息消費者在接收該事務消息后執行其本地業務邏輯。
進一步地,步驟S3中,消息消費者如果執行本地業務邏輯成功,則提交本地事務,并向消息服務發送消費成功的確認消息,如果執行失敗則向消息服務發送消費失敗的確認消息。
更進一步地,消息服務如果接收到消息消費者發送的消費成功的確認消息,則進行該事務消息的移除,如果接收到消息消費者發送的消費失敗的確認消息,則重啟發布該事務消息到消息消費者,消息消費者再次執行本地業務邏輯,直至消息消費者消費該事務消息成功。
更進一步地,消息服務中設置定時消息狀態確認掃描,針對已記錄但未發布的事務消息定時向發送該事務消息的消息生產者進行事務狀態確認。
本發明的有益效果在于:
1、本發明中,通過帶有事務的消息中間件(消息服務)作為中間人角色,能夠有效的保障各系統之間事務的一致性;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于上海艾融軟件股份有限公司,未經上海艾融軟件股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201811304916.0/2.html,轉載請聲明來源鉆瓜專利網。





