[发明专利]消息队列处理方法、装置和消息队列管理系统在审
申请号: | 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.vipzhuanli.com/pat/books/202111130070.5/1.html,转载请声明来源钻瓜专利网。