[發明專利]消息同步方法及裝置有效
| 申請號: | 202010782075.5 | 申請日: | 2020-08-06 |
| 公開(公告)號: | CN111884769B | 公開(公告)日: | 2023-10-27 |
| 發明(設計)人: | 王明濤 | 申請(專利權)人: | 中國銀行股份有限公司 |
| 主分類號: | H04L1/1607 | 分類號: | H04L1/1607;H04L1/1809;G06F16/23;G06F16/27 |
| 代理公司: | 北京三友知識產權代理有限公司 11127 | 代理人: | 周曉飛;許曼 |
| 地址: | 100818 *** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 消息 同步 方法 裝置 | ||
本發明提供了一種消息同步方法及裝置,其中該方法包括:在消息生產者發布消息后,記錄消息對應的狀態信息存入數據庫;根據消息消費者對消息的處理數據,確定消息對應的新的狀態信息,更新至數據庫;循環執行以下步驟,直至數據庫中記錄的所有消息對應的狀態信息為第一預設值:每隔第一預定時間間隔,調取數據庫中的狀態信息為第二預設值的消息,重新發布;根據消息消費者對重新發布的消息的處理數據,確定重新發布的消息對應的新的狀態信息,更新至數據庫。該方法可確定所發布消息是否發送成功,以此為依據重新發布,保證了消息可靠性;不占用消息生產者和消息消費者的處理進程,從而減少了消息發送過程中阻塞的發生,進而提高消息處理的吞吐量。
技術領域
本發明涉及數據處理技術領域,尤其涉及一種消息同步方法及裝置。
背景技術
隨著微服務的流行,數據的分布式存儲,導致消息傳輸的一致性變得愈加復雜。目前分布式系統間,消息傳輸主要是通過發布訂閱消息系統,比如kafka,進行消息同步。
現有的消息同步方式有:(一)發送并忘記:消息生產者發送消息后,不關心是否發送成功。(二)同步發送:消息生產者逐條發送消息給消息消費者;消息生產者獲取到消息返回的結果,才繼續下一條消息的發送。(三)異步發送:消息生產者發送消息的同時,指定回調函數;消費者處理消息時,調用回調函數;回調函數執行完畢后,消息生產者結束發送。
但是,發送并忘記的方式,消息處理吞吐量大,但無法保證消息的可靠性;而同步發送和異步發送方式,可以保證消息的可靠性,但是消息處理流程復雜,消息發送容易阻塞,消息處理吞吐量較小。
發明內容
本發明實施例提供一種消息同步方法,用以保證消息可靠性的同時,提高消息處理的吞吐量,該方法包括:
在消息生產者發布消息后,記錄消息對應的狀態信息,將消息和對應的狀態信息存入數據庫;
根據消息消費者對消息的處理數據,確定消息對應的新的狀態信息,將消息對應的新的狀態信息,更新至數據庫;
循環執行以下步驟,直至數據庫中記錄的所有消息對應的狀態信息為第一預設值:
每隔第一預定時間間隔,調取數據庫中的狀態信息為第二預設值的消息,重新發布;
根據消息消費者對重新發布的消息的處理數據,確定重新發布的消息對應的新的狀態信息,將重新發布的消息對應的新的狀態信息,更新至數據庫。
本發明實施例還提供一種消息同步裝置,用以保證消息可靠性的同時,提高消息處理的吞吐量,該裝置包括:
消息存儲模塊,用于在消息生產者發布消息后,記錄消息對應的狀態信息,將消息和對應的狀態信息存入數據庫;
第一狀態更新模塊,用于根據消息消費者對消息的處理數據,確定消息對應的新的狀態信息,將消息對應的新的狀態信息,更新至數據庫;
循環模塊,用于調用重發模塊和第二狀態更新模塊,循環執行以下步驟,直至數據庫中記錄的所有消息對應的狀態信息為第一預設值:
重發模塊,用于每隔第一預定時間間隔,調取數據庫中的狀態信息為第二預設值的消息,重新發布;
第二狀態更新模塊,用于根據消息消費者對重新發布的消息的處理數據,確定重新發布的消息對應的新的狀態信息,將重新發布的消息對應的新的狀態信息,更新至數據庫。
本發明實施例還提供一種計算機設備,包括存儲器、處理器及存儲在存儲器上并可在處理器上運行的計算機程序,所述處理器執行所述計算機程序時實現上述消息同步方法。
本發明實施例也提供一種計算機可讀存儲介質,所述計算機可讀存儲介質存儲有執行上述消息同步方法的計算機程序。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國銀行股份有限公司,未經中國銀行股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010782075.5/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種國蘭根狀莖包埋及低溫保存方法
- 下一篇:一種雙冷凝器太陽能海水淡化裝置





