[發明專利]一種隊列消息一致性的實現方法、裝置、計算系統有效
| 申請號: | 201811294150.2 | 申請日: | 2018-11-01 |
| 公開(公告)號: | CN109408203B | 公開(公告)日: | 2019-10-18 |
| 發明(設計)人: | 許廣彬;譚瑞忠;濮天暉;王明星 | 申請(專利權)人: | 無錫華云數據技術服務有限公司 |
| 主分類號: | G06F9/46 | 分類號: | G06F9/46;G06F9/54 |
| 代理公司: | 蘇州友佳知識產權代理事務所(普通合伙) 32351 | 代理人: | 儲振 |
| 地址: | 214000 江*** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 隊列消息 事務管理模塊 計算系統 消息管理模塊 業務邏輯模塊 消息中間件 事務 設備宕機 事件執行 網絡故障 消息管理 心跳機制 不一致 數據源 監聽 回滾 調用 投遞 外部 申請 進程 管理 | ||
本發明提供了一種實現隊列消息一致性的裝置、實現方法及計算系統,該裝置包括:業務邏輯模塊、事務管理模塊及消息管理管理;業務邏輯模塊,請求打開消息中間件的本地事務,并在執行事務前調用事務管理模塊開啟本地事務,并獨立地通過消息管理模塊對事務管理模塊所開啟的所述消息中間件的本地事務所產生的提交事件或回滾事件執行監聽,事務管理模塊與消息管理模塊基于心跳機制確保彼此處于同一進程。在本申請所揭示的一種隊列消息一致性的實現方法、裝置及計算系統中,克服了隊列消息在不同數據源之間因網絡故障、設備宕機等外部因素所導致的隊列消息投遞不一致的缺陷。
技術領域
本發明涉及隊列消息業務處理技術領域,尤其涉及一種隊列消息一致性的實現方法、裝置及計算系統。
背景技術
在業務系統中,兩個服務之間通常會使用消息中間件來進行通信,如Active MQ、Rabbit MQ等。消息通常包括隊列消息(Queue)和訂閱消息 (Topic)兩種,本發明中主要關注隊列消息。消息隊列就是在消息的傳輸過程中,保存消息的容器。基于事務需要實現ACID的要求(即原子性、一致性、隔離性、持久性),所以需要采用一定的機制來保證,通常采用的是分階段提交的方式,并基于XA協議實現。
XA協議規定事務管理器(Transaction Manager,TM)和資源管理器 (ResourceManager,RM),采用二階段提交協議。二階段提交協議為了保證事務的一致性,不管是事務管理器還是各個資源管理器,每執行一步操作,都會記錄日志,為出現故障后的恢復準備依據。二階段提交協議的存在的弊端是阻塞,因為事務管理器要收集各個資源管理器的響應消息,如果其中一個或多個一直不返回消息,則事務管理器一直等待,應用程序也被阻塞,甚至可能永久阻塞。
更重要的是,采用XA協議確保隊列消息一致性的方案中,一旦發生網絡故障或者設備宕機,則會導致隊列消息調用失敗。于此場景中,隊列消息無法保證一致性,并只能采用人工修復補償的方式進行一致性的調整。這就導致了運維人員的工作量急劇增大。同時,即使采用人工修復補償的方式對隊列消息的一致性進行調整,也無法真正確保隊列消息在不同數據源之間的一致性。
此外,采用XA協議確保隊列消息一致性的方案中,對消息中間件所執行的事務管理機制過于依賴。因此,對于普通用戶或者運維人員的技術要求過于苛刻。同時,用戶或者運維人員不僅要考慮隊列消息自身的業務邏輯,還要兼顧消息中間件的業務邏輯以及事務機制的實現。因此,在現有技術中,隊列消息一致性的實現技術方案存在一定的技術缺陷。
有鑒于此,有必要對現有技術中的在不同數據源之間實現隊列消息的一致性的實現方法予以改進,以解決上述問題。
發明內容
本發明的目的在于揭示一種隊列消息一致性的實現方法、裝置及計算系統,以克服隊列消息在不同數據源之間因網絡故障、設備宕機等外部因素所導致的隊列消息投遞不一致的缺陷,以確保不同數據源之間隊列消息的強一致性。
為實現上述第一個發明目的,本發明提供了一種實現隊列消息一致性的裝置,包括:業務邏輯模塊、事務管理模塊及消息管理模塊 ;所述業務邏輯模塊,請求打開消息中間件的本地事務,并在執行事務前調用事務管理模塊開啟本地事務,并獨立地通過消息管理模塊對事務管理模塊所開啟的所述消息中間件的本地事務所產生的提交事件或回滾事件執行監聽,所述事務管理模塊與消息管理模塊基于心跳機制確保彼此處于同一進程;所述消息管理模塊保存并轉發所述消息中間體的指定隊列中的消息至事務管理模塊,并將消息轉發執行結果通知事務管理模塊,事務管理模塊根據所述轉發執行結果執行提交事件或回滾事件,消息中間件的本地事務為所述消息中間件上運行的事務。
作為本發明的進一步改進,所述消息管理模塊根據消息頭查找消息中間體的指定隊列中的消息的被執行轉發結果,所述消息頭包被執行轉發的消息所對應的事務id。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于無錫華云數據技術服務有限公司,未經無錫華云數據技術服務有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201811294150.2/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種LMDB擴展方法及裝置
- 下一篇:一種分布式任務系統的任務調度方法及裝置





