[发明专利]消息管理方法及装置、消息预读方法及装置有效
申请号: | 201610169460.6 | 申请日: | 2016-03-23 |
公开(公告)号: | CN107231283B | 公开(公告)日: | 2020-12-18 |
发明(设计)人: | 陈建锋;林强;陈舟锋 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | H04L12/58 | 分类号: | H04L12/58;H04L29/08 |
代理公司: | 北京汇思诚业知识产权代理有限公司 11444 | 代理人: | 王刚;龚敏 |
地址: | 开曼群岛大开曼*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 消息 管理 方法 装置 | ||
本申请涉及一种消息管理方法及装置、消息预读方法及装置。其中,消息管理方法包括:在内存中记录消息队列中可消费消息的编号范围;根据所述消息队列中消息的状态变化情况调整所述编号范围和管理消息。本发明实施例通过编号范围来管理消息队列中可消费消息的编号,在保证消息先进先出特性的前提下提高了消息预读速度,提升了消息系统性能。
技术领域
本发明涉及通信领域,尤其涉及一种消息管理方法及装置、消息预读方法及装置。
背景技术
在云计算中,消息管理是非常重要的一个环节,它影响着整个云计算系统的性能。这里首先说明一下与消息有关的术语:
消息队列先进先出:先进入队列的消息优先被消费。
消息可靠性:消息进入消息队列后被持久化到磁盘,保证消息不会因掉电丢失。
至少消费一次:消息只有在消费成功后才会被用户主动删除,否则可以一直被消费。
活跃的消息:可以被消费的消息。
不活跃的消息:正在被用户消费的消息。
删除的消息:被用户主动标志为已消费的消息。
消息的处理过程是,首先,消息生产者(也可称为客户端)将生产的消息写入磁盘;在缓存为空时,触发一次预读操作,将消息从磁盘预读到缓存中;消息消费者(也可称为客户端)从缓存中读取出消息,进行消费。如果消息消费失败,则复活消息到磁盘中。
可靠消息系统在服务端持久化消息的读取状态,来保证消息“至少消费一次”。同时需要返回当前消息队列中最先入队的消息,来保证消息队列先进先出的特性。每个进入消息队列的消息都会分配一个消息编号(也即消息ID),消息编号按照消息入队的先后有序。如果消息未能被成功消费,将会再次入队来确保能够被再次消费。这样系统当前的最先入队的消息是动态变化的。
一种相关技术中,通过如下方式获取最先入队的消息:在消息的元数据信息中增加两个属性,一个属性用来记录消息是否已经被成功消费,另一个属性记录下一个消息的位置。在消息被发送到消息系统中时将消息的消费状态设置为“未消费”,在用户消费获取消息后将消息状态设置为“正在消费”,用户成功消费消息后主动将消息的状态设置为“已消费”。服务端记录当前系统中第一个“未消费”消息的位置。该相关技术为了保证消息的先进先出需要顺序消费消息,无法支持并发消费,限制了消息的处理速度,而且该相关技术中,修改消息的属性还会导致随机写磁盘,严重影响系统的性能。
另一种相关技术中,通过如下方式获取最先入队的消息:将一个消息队列分成两部分,即“未消费的消息队列”和“正在消费的消息队列”。消息发送至系统后进入“未消费的消息队列”。用户获取消息后,消息出“未消费的消息队列”,进入“正在消费的消息队列”。消费成功后,用户主动将消息从“正在消费的消息队列”中删除。否则,在超出约定的时间后,系统会把消息从“正在消费的消息队列”移至“未消费的消息队列”的队尾,使消息可以被再次消费,来保证消息至少被消费一次。该相关技术在消息消费失败的时候,系统需要把该消息再次加入“未消费的消息队列”的队尾,会严重影响消息先进先出的特性。
发明内容
本发明的目的在于提供一种消息管理方法及装置、消息预读方法及装置,在保证消息先进先出特性的前提下,提高消息预读速度,提升系统性能。
为实现上述目的,本发明提出了一种消息管理方法,包括:
在内存中记录消息队列中可消费消息的编号范围;
根据所述消息队列中消息的状态变化情况调整所述编号范围和管理消息。
进一步地,上述方法还可具有以下特点,所述编号范围包括至少一个编号区间,且任意两个编号区间不重叠。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610169460.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种基于CAN通信的报文解析方法
- 下一篇:一种消息的发送方法和终端设备