[發明專利]一種消息持久化方法、服務器和計算機可讀存儲介質有效
| 申請號: | 201710960149.8 | 申請日: | 2017-10-16 |
| 公開(公告)號: | CN107704329B | 公開(公告)日: | 2020-07-14 |
| 發明(設計)人: | 陳宇珽;許再越;熊璐;李正;茅廷;余波;李升先;李志斌 | 申請(專利權)人: | 中匯信息技術(上海)有限公司 |
| 主分類號: | G06F9/54 | 分類號: | G06F9/54;H04L29/08 |
| 代理公司: | 北京睿派知識產權代理事務所(普通合伙) 11597 | 代理人: | 劉鋒 |
| 地址: | 201203 上海*** | 國省代碼: | 上海;31 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 消息 持久 方法 服務器 計算機 可讀 存儲 介質 | ||
本發明公開了一種消息持久化方法、服務器和計算機可讀存儲介質。在所述方法中,創建數據文件用于存儲需要持久化的消息,創建消息索引文件和時間索引文件用于索引讀取數據文件中的消息。通過創建消息索引文件以使得只需要讀取數據文件一次便可以得到所需消息。通過創建時間索引文件可讀取指定時間的消息。因此,所述方法可以方便快速的從數據文件中讀取指定時間的消息。
技術領域
本發明涉及網絡通信技術領域,更具體地,涉及一種消息持久化方法、服務器和計算機可讀存儲介質。
背景技術
隨著信息技術的發展,以及分布式系統的廣泛應用,在分布式軟件系統中,消息中間件在許多行業的關鍵應用中扮演著至關重要的角色。
消息中間件適用于需要可靠的數據傳送的分布式環境。采用消息中間件機制的系統中,不同的對象之間通過傳遞消息來激活對方的事件,完成相應的操作。消息發布端將消息發送給消息服務器,消息服務器將消息存放在若干隊列中,在合適的時候再將消息轉發給消息消費端。
消息中間件系統中,需要將消息發布端的消息持久化保存在硬盤等存儲中,一般持久化保存到文件或數據庫中,以備其他消息消費端可以可靠的接收消息。為了更高效地進行消息交互,目前對消息中間件系統的發送接收的單位時間吞吐率要求很高,對消息持久化存儲消息的速率要求很高,對消息恢復時讀取消息的速率要求也很高,即需要很高的讀寫文件或數據庫的速率。
在現有的技術中,active MQ是采用樹的索引方式,在恢復指定消息序列號區間的消息時,需要遍歷索引文件樹的各個節點,再通過消息索引去查找數據文件,索引文件樹的遍歷效率較低,訪問速率會比較慢。
Kafka是一種高吞吐量的分布式發布訂閱消息系統,在Kafka系統的持久化消息方法中索引文件設置了消息偏移地址,可以通過消息偏移地址比較快的找到消息所在的段文件。段文件中很多個日志記錄,通過每個日志記錄的消息長度字段去一次次跳轉找到需要恢復的消息位置。如果段文件中有n條消息,按照二分法去查找待恢復的消息,需要log2n次,也不能滿足目前快速高效的要求。
發明內容
有鑒于此,本發明提供了一種消息持久化方法、服務器和計算機可讀存儲介質,以實現快速讀取指定時間的消息。
第一方面,提供一種消息持久化方法,包括:
接收需要持久化的消息后,獲取所述消息所屬的消息主題;
將所述消息存儲在所述消息主題對應的數據文件中;
定時更新消息索引文件,建立所述消息對應的消息索引記錄,所述消息索引文件包括索引頭和消息索引記錄;以及
在時間索引文件中,每隔單位時間生成一條時間索引記錄;
其中,所述消息索引文件和所述時間索引文件是在預先設定的時間點創建的;所述索引頭包括參考時間戳,所述參考時間戳對應的參考時間作為存儲消息時間點的參考;所述消息索引記錄包括對應的數據文件標識、所述消息在所述數據文件中的偏移地址和相對時間戳,所述相對時間戳是存儲消息時間點相對所述參考時間而得到的;所述時間索引記錄用于存儲在當前單位時間內存儲的第一條消息對應的消息索引記錄在所述消息索引文件中的偏移地址。
進一步地,所述方法還包括:
在接收到讀取指定時間段內消息的指令時根據所述時間索引文件和所述消息索引文件索引并讀取對應數據文件中對應的消息。
進一步地,根據所述時間索引文件和所述消息索引文件索引并讀取對應數據文件中對應的消息包括:
根據所述參考時間戳獲取所述指定時間段的相對起始單位時間和相對結束單位時間;
根據所述相對起始單位時間和所述時間索引文件索引獲取第一消息索引記錄的偏移地址;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中匯信息技術(上海)有限公司,未經中匯信息技術(上海)有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710960149.8/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種圖書館藏書轉借方法
- 下一篇:線路板生產編碼和識別系統及方法





