[發明專利]消息存儲、投遞方法和裝置以及電子設備在審
| 申請號: | 201611090988.0 | 申請日: | 2016-12-01 |
| 公開(公告)號: | CN108132845A | 公開(公告)日: | 2018-06-08 |
| 發明(設計)人: | 王小瑞;馮嘉;周新宇 | 申請(專利權)人: | 阿里巴巴集團控股有限公司 |
| 主分類號: | G06F9/54 | 分類號: | G06F9/54 |
| 代理公司: | 北京市惠誠律師事務所 11353 | 代理人: | 逯博 |
| 地址: | 英屬開曼群島大開*** | 國省代碼: | 開曼群島;KY |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 索引信息 消息存儲 寫入 消息數據文件 隊列 投遞 方法和裝置 電子設備 裝置及設備 實體數據 系統資源 消息處理 數據量 有效地 申請 占用 查找 消耗 | ||
本申請實施例提供了一種消息存儲、投遞方法和裝置以及電子設備,其中消息存儲方法包括接收新生成的消息;將所述消息寫入消息數據文件中;生成所述消息的索引信息,并將所述索引信息寫入隊列文件中,所述索引信息包括所述消息在所述消息數據文件中的位置信息。本申請提供的消息存儲、投遞方法、裝置及設備,通過將消息的實體數據寫入到消息數據文件中,將消息的索引信息寫入到隊列文件中,從而有效地降低了隊列文件的數據量,進而減少了系統資源的占用和消耗,提高了消息處理速度,并且將索引信息寫入隊列文件,能夠更加便于查找待投遞的消息,從而進一步提高消息的處理速度。
技術領域
本申請涉及計算機技術領域,尤其涉及一種消息存儲、投遞方法和裝置以及電子設備。
背景技術
現今的網絡服務平臺(例如購物、支付等平臺),每天會出現千億級數量的消息數據。通過對消息數據的分析發現,在大部分場景下(例如消費場景中),呈現出單消息生產者,多消息消費者的特點。
現有技術中的消息存儲機制,一般是采用隊列的方式對消息數據進行存儲。例如,在傳統基于日志數據的消息引擎中,如Kafka(Kafka是一種高吞吐量的分布式發布訂閱消息系統),每個隊列等價于一個文件,在隊列文件中,如圖1所示,消息按照從舊到新的先后順序(消息產生或者到達平臺的順序)存儲在隊列文件中,在進行消息投遞時,也是按照隊列的先后順序進行消息投遞。在現有技術中,每個隊列中存儲全量的消息數據,即消息的全量數據(即全部內容數據)均存儲在隊列文件中,導致隊列文件數量及其龐大,如圖2所示,其為一個示例性的完整消息的全部內容。假設某個主題有4個隊列,每個隊列能夠存儲50W消息,每個消息2K大小。那么針對這一個主題,服務器需要存儲4*50W*2K的隊列文件,大概1T的數據量。隊列文件能夠對消息進行較好的排序,非常有利于訂閱模式下的消息存儲及投遞的管理,但是,同時,由于隊列結構的復雜性,其也會嚴重占用和消耗系統資源,當面臨海量消息數據時,會導致嚴重延遲。
發明內容
本申請提供了一種消息存儲、投遞方法和裝置以及電子設備,以減少系統資源的消耗,降低消息處理的延遲。
為達到上述目的,本申請的實施例采用如下技術方案:
第一方面,提供了一種消息存儲方法,包括:
接收新生成的消息;
將所述消息寫入消息數據文件中;
生成所述消息的索引信息,并將所述索引信息寫入隊列文件中,所述索引信息包括所述消息在所述消息數據文件中的位置信息。
第二方面,提供了一種消息投遞方法,其特征在于,消息的存儲在數據文件中,所述消息的索引信息存儲在隊列文件中,所述索引信息包括所述消息在所述數據文件中的位置信息,所述方法包括:
從所述隊列文件中讀取所述消息的索引信息;
根據所述消息的索引信息,從所述消息數據文件中獲取與該索引信息對應的所述消息,并投遞該消息。
第三方面,提供了消息存儲裝置,包括:
消息接收模塊,用于接收新生成的消息;
消息寫入模塊,用于將所述消息寫入消息數據文件中;
索引信息生成模塊,用于生成所述消息的索引信息,并將所述索引信息寫入隊列文件中,所述索引信息包括所述消息在所述數據文件中的位置信息。
第四方面,提供了消息投遞裝置,消息的存儲在數據文件中,所述消息的索引信息按照消息生成的先后順序存儲在隊列文件中,所述索引信息包括所述消息在所述數據文件中的位置信息,所述裝置包括:
索引信息獲取模塊,用于從所述隊列文件中讀取所述消息的索引信息;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于阿里巴巴集團控股有限公司,未經阿里巴巴集團控股有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.17sss.com.cn/pat/books/201611090988.0/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:插件下載方法及裝置
- 下一篇:一種應用程序間數據共享的方法、裝置和終端設備





