[发明专利]一种实现延时消息队列的方法及系统有效
申请号: | 201911369004.6 | 申请日: | 2019-12-26 |
公开(公告)号: | CN111225041B | 公开(公告)日: | 2023-04-07 |
发明(设计)人: | 白天 | 申请(专利权)人: | 西藏宁算科技集团有限公司 |
主分类号: | H04L67/10 | 分类号: | H04L67/10;H04L67/51;H04L67/1097;H04L67/568;G06F9/54 |
代理公司: | 成都市鼎宏恒业知识产权代理事务所(特殊普通合伙) 51248 | 代理人: | 谢敏 |
地址: | 850000 西藏自*** | 国省代码: | 西藏;54 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 实现 延时 消息 队列 方法 系统 | ||
本发明公开了一种实现延时消息队列的方法及系统,客户端模块发送消息至服务端模块内,服务端模块将消息写入到关系数据库内进行存储;服务端模块判定消息的到期时间大于当前服务器的时间,并生成一条延时消息记录;服务端模块将延时消息记录写入到内存数据库中的延时消息队列内,并周期性轮询延时消息队列;客户端模块向服务端模块拉取延时消息记录,服务端模块检查延时消息队列,并读取关系数据库内的消息内容,反馈给客户端模块;客户端模块接收消息内容,并发送ACK至服务端模块,显示消息已成功收到。本发明采用扩展策略,支持需要延时消息的各种业务场景,充分利用现有消息队列系统的功能实现零侵入,避免了修改原消息队列系统带来的风险。
技术领域
本发明涉及分布式服务技术领域,尤其涉及一种实现延时消息队列的方法及系统。
背景技术
消息队列具有很好的削峰作用的功能——即通过异步处理,将短时间高并发产生的事务消息存储在消息队列中,从而削平高峰期的并发事务。在电子商务一些秒杀、促销活动中,合理使用消息队列可以有效抵御促销活动刚开始大量订单涌入对系统的冲击。延时消息即消息发送后并不立即对消费者可见,而是在用户指定的时间投递给消费者。比如我们现在发送一条延时1分钟的消息,消息发送后立即发送给服务器,但是服务器在1分钟后才将该消息交给消费者。
现有系统通过设置定时器对数据库进行轮询实现延时消息,造成了数据库读写性能急剧下降,从而影响了服务的整体性能。很多现有的分布式系统中已经存在了消息队列,有的消息队列不支持延时消息,有的部分支持延时消息(例如,对延时的时间有限制,比如5分钟、10分钟、1小时等,不支持任意时间的延时消息),无法完全满足业务需求。
发明内容
本部分的目的在于概述本发明的实施例的一些方面以及简要介绍一些较佳实施例。在本部分以及本申请的说明书摘要和发明名称中可能会做些简化或省略以避免使本部分、说明书摘要和发明名称的目的模糊,而这种简化或省略不能用于限制本发明的范围。
鉴于上述现有存在的问题,提出了本发明。
因此,本发明提供了一种实现延时消息队列的方法及系统,解决了传统通过定时器轮询数据库实现延时消息带来整个系统性能下降的问题。
为解决上述技术问题,本发明提供如下技术方案:客户端模块发送消息至服务端模块内,所述服务端模块将所述消息写入到关系数据库内进行存储;所述服务端模块判定所述消息的到期时间大于当前服务器的时间,并生成一条新的延时消息记录;所述服务端模块将所述延时消息记录写入到内存数据库中的延时消息队列内,并周期性轮询所述延时消息队列;所述客户端模块向所述服务端模块拉取所述延时消息记录,所述服务端模块检查所述延时消息队列,并读取所述关系数据库内的所述消息内容,反馈给所述客户端模块;所述客户端模块接收所述消息内容,并发送ACK至所述服务端模块,显示所述消息已成功收到。
作为本发明所述的一种实现延时消息队列的方法的一种优选方案,其中:生成所述延时消息记录包括,所述关系数据库将所述消息存储,并自动生成一条消息记录ID;所述服务端模块基于所述消息的到期时间大于当前所述服务端模块的时间判定,利用所述消息记录ID,生成一条延时消息记录。
作为本发明所述的一种实现延时消息队列的方法的一种优选方案,其中:所述延时消息记录包括,所述消息记录ID;所述消息主题;所述消息的到期时间。
作为本发明所述的一种实现延时消息队列的方法的一种优选方案,其中:所述内存数据库将所述延时消息记录插入到所述延时消息队列中,对所述延时消息记录的到期时间从小到大进行排序。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西藏宁算科技集团有限公司,未经西藏宁算科技集团有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911369004.6/2.html,转载请声明来源钻瓜专利网。