[發明專利]消息隊列處理方法、裝置和消息隊列管理系統在審
| 申請號: | 202111130070.5 | 申請日: | 2021-09-26 |
| 公開(公告)號: | CN114035972A | 公開(公告)日: | 2022-02-11 |
| 發明(設計)人: | 田六合;張美平;劉偉光;潘東元 | 申請(專利權)人: | 阿里巴巴(中國)有限公司;阿里云計算有限公司 |
| 主分類號: | G06F9/54 | 分類號: | G06F9/54 |
| 代理公司: | 北京智信四方知識產權代理有限公司 11519 | 代理人: | 宋海龍 |
| 地址: | 310052 浙江省杭州市濱江*** | 國省代碼: | 浙江;33 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 消息 隊列 處理 方法 裝置 管理 系統 | ||
1.一種消息隊列處理方法,其中,所述方法包括:
在消息隊列存儲節點的虛擬內存中建立用于緩存熱消息的第一緩存區和用于緩存冷消息的第二緩存區;
根據對消息隊列的讀取請求,確定所述讀取請求所請求的消息的索引值;
根據所述索引值確定從所述第一緩存區還是從所述第二緩存區讀取所請求的消息;
從所述第一緩存區或所述第二緩存區返回所述讀取請求所請求的消息。
2.根據權利要求1所述的方法,其中,所述消息的索引值為所述消息在所述消息隊列中的偏移量,
其中,所述根據對消息隊列的讀取請求,確定所述讀取請求所請求的消息的索引值,包括:
根據對消息隊列的讀取請求,確定所述讀取請求所請求的消息的偏移量,
其中,所述根據所述索引值確定從所述第一緩存區還是從所述第二緩存區讀取所請求的消息,包括:
根據所述讀取請求所請求的消息的偏移量以及所述消息隊列的最大偏移量確定從所述第一緩存區還是從所述第二緩存區讀取所請求的消息。
3.根據權利要求2所述的方法,其中,所述根據所述讀取請求所請求的消息的偏移量以及所述消息隊列的最大偏移量確定從所述第一緩存區還是從所述第二緩存區讀取所請求的消息,包括:
根據所述讀取請求所請求的消息的偏移量以及所述消息隊列的最大偏移量的差值小于等于預設閾值,確定從所述第一緩存區讀取所請求的消息,或者
根據所述讀取請求所請求的消息的偏移量以及所述消息隊列的最大偏移量的差值大于預設閾值,確定從所述第二緩存區讀取所請求的消息。
4.根據權利要求1或2所述的方法,其中,所述第二緩存區僅接受所述消息隊列的消息消費者的讀取,不接受所述消息隊列的消息生產者的寫入。
5.根據權利要求1或2所述的方法,其中,所述第一緩存區是頁面緩存區Page Cache,并且所述第二緩存區是最近最少使用緩存區LRU Cache。
6.根據權利要求5所述的方法,其中,所述從所述第一緩存區或所述第二緩存區返回所述讀取請求所請求的消息,包括:
在確定從所述第二緩存區讀取所請求的消息并且在所述第二緩存區中不存在所述消息的情況下,以直接IO的方式從所述消息隊列存儲節點的非易失性存儲器將所述讀取請求所請求的消息讀取到所述最近最少使用緩存區LRU Cache,以返回所請求的消息,或者
在確定從所述第一緩存區讀取所請求的消息并且在所述第一緩存區中不存在所述消息的情況下,發生缺頁中斷,從所述消息隊列存儲節點的非易失性存儲器將所述讀取請求所請求的消息讀取到所述頁面緩存區Page Cache,以返回所請求的消息。
7.根據權利要求1或2所述的方法,其中,通過第一線程執行從所述第一緩存區返回消息的操作,并且通過與第一線程處于不同線程池的第二線程執行從所述第二緩存區返回消息的操作,使得對所述第一緩存區的讀取與對所述第二緩存區的讀取線程分離。
8.一種消息隊列處理裝置,其中,所述裝置包括:
緩存區建立模塊,被配置為在消息隊列存儲節點的虛擬內存中建立用于緩存熱消息的第一緩存區和用于緩存冷消息的第二緩存區
索引值確定模塊,被配置為根據對消息隊列的讀取請求,確定所述讀取請求所請求的消息的索引值;
消息緩存位置確定模塊,被配置為根據所述索引值確定從所述第一緩存區還是從所述第二緩存區讀取所請求的消息;
消息返回模塊,被配置為從所述第一緩存區或所述第二緩存區返回所述讀取請求所請求的消息。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于阿里巴巴(中國)有限公司;阿里云計算有限公司,未經阿里巴巴(中國)有限公司;阿里云計算有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202111130070.5/1.html,轉載請聲明來源鉆瓜專利網。





