[发明专利]消息队列的实现方法和系统、消息队列处理系统有效
申请号: | 201210123254.3 | 申请日: | 2012-04-24 |
公开(公告)号: | CN103377043A | 公开(公告)日: | 2013-10-30 |
发明(设计)人: | 来鑫 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44;G06F17/30 |
代理公司: | 广州华进联合专利商标代理有限公司 44224 | 代理人: | 何平;曾旻辉 |
地址: | 518044 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 消息 队列 实现 方法 系统 处理 | ||
技术领域
本发明涉及数据处理技术,特别是涉及一种消息队列的实现方法和系统、消息队列处理系统。
背景技术
消息队列是消息在传递过程中保存消息的容器,也就是说发送者将消息写入消息队列中,接收者再从消息队列中取出保存的消息进行处理,进而实现发送者和接收者之间消息的共享和通信。
在消息队列的并发操作中,对于多个接收者在消息队列中的操作而言,通常利用锁服务来保证消息的正确性,使得某一接收者在对访问消息队列进行操作时,其它接收者是无法对消息队列进行操作的。
然而,消息队列中的发送、接收、删除等各种各样的操作是非常频繁的,相应的,消息队列的服务压力在逐渐地增大,不易于扩展的锁服务将为消息队列带来并发度低的问题,进而成为消息队列服务的瓶颈。
发明内容
基于此,有必要针对锁服务在消息队列造成的并发度低的问题,提供一种能提高并发度的消息队列的实现方法。
此外,还有必要提供一种能提高并发度的消息队列的实现系统。
另外,还有必要提供一种能提高并发度的消息队列处理系统。
一种消息队列的实现方法,包括如下步骤:
根据消息队列中触发的操作获取队列标识的位置值,并执行所述操作;
判断所述获取的位置值是否与所述队列标识当前对应的位置值相同,若否,则拒绝所述操作的执行,若是,则
接受所述操作的执行,并更新接受操作的队列标识当前对应的位置值以及所述队列标识中的指针值。
在其中一个实施例中,在所述拒绝所述操作的执行的步骤之后将返回所述根据消息队列中触发的操作获取队列标识的位置值的步骤:
所述方法还包括:
对操作的重试进行计数得到重试次数;
判断所述操作的重试次数是否达到次数限值,若是,则结束。
在其中一个实施例中,所述操作为发送消息,所述队列标识为队尾标识,所述执行所述操作的步骤为:
插入消息节点,向所述消息节点写入消息以及所述消息对应的标识;
若判断到所述位置值与所述队尾标识当前对应的位置值相同,将所述消息对应的标识写入所述队尾标识;
所述更新所述队列标识中的指针值的步骤为:
将尾部节点的指针值设为所述消息对应的标识。
在其中一个实施例中,所述操作为接收消息,所述队列标识为消息队列的队首标识;所述执行所述操作的步骤为:
判断头部节点中的消息是否被接收,若否,则
若判断到所述位置值与所述队首标识当前对应的位置值相同,在所述节点中提取消息,并标识消息接收者,向所述消息接收者返回所述消息。
在其中一个实施例中,所述操作为删除消息,所述执行所述操作的步骤为:
判断所述消息删除者是否与所述消息接收者相同,若是,则
若判断到所述位置值与所述队首标识当前对应的位置值相同,删除所述头部节点;
所述更新所述队列标识中的指针值的步骤为:
向所述消息队列中队首标识的指针值写入所述头部节点的下一节点中消息对应的标识。
在其中一个实施例中,所述根据所述位置值和所述队列标识当前对应的位置值接受所述操作的执行的步骤之后还包括:
根据所述操作更新所述队列标识中的标记值;
根据队首标识的标记值和队尾标识的标记值得到队列长度。
一种消息队列的实现系统,包括:
队列处理装置,用于根据消息队列中触发的操作获取队列标识的位置值;
判断装置,用于判断所述获取的位置值是否与所述队列标识当前对应的位置值相同,若否,则拒绝所述操作的执行,若是,则通知存储装置;
所述存储装置用于接受操作的执行,并更新接受操作的队列标识当前对应的位置值以及所述队列标识中的指针值。
在其中一个实施例中,所述队列处理装置包括:
计数模块,用于对操作的重试进行计数得到重试次数;
重试控制模块,用于判断所述操作的重试次数是否达到次数限值,若是,则停止执行。
在其中一个实施例中,所述操作为发送消息,所述队列标识为队尾标识,所述队列处理装置包括:
节点插入模块,用于在所述存储装置中插入消息节点,向所述消息节点写入消息以及所述消息对应的标识;
消息发送模块,用于若判断到所述位置值与所述队尾标识当前对应的位置值相同,并将尾部节点的指针值设为所述消息对应的标识;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210123254.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种可对墙体进行隔热的壁炉
- 下一篇:一种适用于SCR处理工艺的烟道结构