一种基于数据库的轻量级消息队列实现方法及存储设备技术

技术编号:20221693 阅读:60 留言:0更新日期:2019-01-28 20:13
本发明专利技术涉及消息处理技术领域,特别涉及一种基于数据库的轻量级消息队列实现方法及存储设备。所述一种基于数据库的轻量级消息队列实现方法,包括步骤:创建数据库表;接收请求操作,并根据请求操作更新消息表;启动本地消息监听程序,若监听到存在未处理的消息,则对对应的未处理的消息在数据库中写入消费占用标注;推送标注成功的消息至本地消费队列;启动本地消费线程,监听本地消费队列,若存在待消费的消息,则获取消息并进行消费;消费结束后,更新消息状态。本发明专利技术的技术方案采用基于数据库表的消息处理方式,整个消息的生产、消费过程无需使用MQ中间件作为媒介,降低了硬件环境、系统环境的各项配置要求,实现轻量级消息队列的功能。

【技术实现步骤摘要】
一种基于数据库的轻量级消息队列实现方法及存储设备
本专利技术涉及消息处理
,特别涉及一种基于数据库的轻量级消息队列实现方法及存储设备。
技术介绍
传统的消息消费模型依赖于MQ消息中间件进行实现:由生产者程序生产消息放入指定的队列中,再由消费者程序从指定队列中拉取消息进行消费,同时通过日志对消费的过程进行记录,后续基于日志进行相关的消息跟踪。这样的消费模型存在以下缺点:1、生产环境必须安装并配置对应的MQ中间件产品,对于软硬件环境、采购成本、兼容性等有更高的要求;2、MQ产品中的消息通常被暂存在内存中,如果队列应用出现宕机,消息将存在丢失风险;并且多数只能使用自带的管理页面浏览队列中的消息,只能满足普适性监控需求,无法直观展示消息的具体内容、关键数据项、处理状态等,不便于对消息的个性化监控;3、MQ产品中的消息在消费后即被销毁,对于消息的问题复现、异常追溯、消息重新消费等实现难度高;4、MQ产品中同一消息,难以被多种业务共同消费,并且对于复杂业务场景、业务功能的适配有较大难度。
技术实现思路
为此,需要提供一种基于数据库的轻量级消息队列实现方法,用以解决上述提到的现有消费模型中存在的本文档来自技高网...

【技术保护点】
1.一种基于数据库的轻量级消息队列实现方法,其特征在于,包括步骤:创建数据库表,所述数据库表至少包括:消息表;接收请求操作,并根据所述请求操作对应更新所述消息表;启动本地消息监听程序,判断是否监听到未处理的消息,若监听到存在未处理的消息,则对对应的未处理的消息在数据库中写入消费占用标注;推送标注成功的消息至本地消费队列;启动本地消费线程,监听本地消费队列,判断是否监听到存在待消费的消息,若存在待消费的消息,则获取所述消息并进行消费;消费结束后,更新消息状态。

【技术特征摘要】
1.一种基于数据库的轻量级消息队列实现方法,其特征在于,包括步骤:创建数据库表,所述数据库表至少包括:消息表;接收请求操作,并根据所述请求操作对应更新所述消息表;启动本地消息监听程序,判断是否监听到未处理的消息,若监听到存在未处理的消息,则对对应的未处理的消息在数据库中写入消费占用标注;推送标注成功的消息至本地消费队列;启动本地消费线程,监听本地消费队列,判断是否监听到存在待消费的消息,若存在待消费的消息,则获取所述消息并进行消费;消费结束后,更新消息状态。2.根据权利要求1所述的一种基于数据库的轻量级消息队列实现方法,其特征在于,所述“并根据所述请求操作对应更新所述消息表”,还包括步骤:根据所述请求操作生产消息,并将所述消息写入所述消息表。3.根据权利要求1所述的一种基于数据库的轻量级消息队列实现方法,其特征在于,还包括步骤:启动消息归档线程,并扫描过期消息,对过期消息进行归档。4.根据权利要求1所述的一种基于数据库的轻量级消息队列实现方法,其特征在于,还包括步骤:启动死信修复线程,扫描符合预设死信条件的消息,根据预定义策略对符合预设死信条件的消息进行修复。5.根据权利要求1所述的一种基于数据库的轻量级消息队列实现方法,其特征在于,所述消息表用于:存储外部程序产生的消息、并记录消息的核心控制字段;所述数据库表还包括:复杂消息体表,所述复杂消息体表用于:存储复杂、数...

【专利技术属性】
技术研发人员:陈哲鲁维逸许惠亮姚少扬
申请(专利权)人:福建榕基软件股份有限公司
类型:发明
国别省市:福建,35

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1