[发明专利]基于消息入库机制的防rabbitmq丢失消息系统及方法在审
申请号: | 202211692399.5 | 申请日: | 2022-12-28 |
公开(公告)号: | CN116089120A | 公开(公告)日: | 2023-05-09 |
发明(设计)人: | 刘建邦;李承林;徐士强;王禹博 | 申请(专利权)人: | 浪潮云信息技术股份公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54 |
代理公司: | 济南信达专利事务所有限公司 37100 | 代理人: | 孙园园 |
地址: | 250100 山东省济南市高*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 消息 入库 机制 rabbitmq 丢失 系统 方法 | ||
本发明公开了基于消息入库机制的防rabbitmq丢失消息系统及方法,属于通信技术领域,本发明要解决的技术问题为如何实现消息入库以防止互联网项目中rabbitmq丢失消息,采用的技术方案为:该系统包括,消息入库模块,用于将产生的消息存入到redis中;其中,消息存入redis前,对消息进行预处理;消息发送模块,用于将消息发送到rabbitmq中,根据消息发送成功或失败去redis中更改相应消息的状态;消息消费模块,用于接收消息,进行消费;并根据消息消费成功或失败去redis中更改相应消息的状态;定时任务处理模块,用于定时检查redis,判断是否有未发送成功以及为消费成功的消息。
技术领域
本发明涉及通信技术领域,具体地说是一种基于消息入库机制的防rabbitmq丢失消息系统及方法。
背景技术
rabbitmq是实现了高级消息队列协议的开源消息代理软件(亦称面向消息的中间件)。在各种企业系统中被广泛使用,作为消息中间件,起到解耦、削峰、异步等作用。
消息在消息队列rabbitmq的组件之间流动的过程如下:
(1)、生产者向Exchange发送消息;
(2)、Exchange根据消息属性将消息路由到Queue进行存储;
(3)、消费者从Queue拉取消息进行消费。
rabbitmq处理消息时,可能出现消息丢失的场景。常见的消息丢失场景如下:
①、生产环境网络波动导致丢包,如生产者向rabbitmq发送消息时丢失;
②、生产者,消费者故障导致的数据丢失,如消费者刚消费到数据,但还没真正处理完成便发生故障导致消息丢失。
rabbitmq本身提供了一些机制防止消息丢失,例如事务消息机制、confirm消息确认机制、消息持久化机制、手动确认机制等。但是这些机制存在如下问题:
①、事务消息机制、confirm消息确认机制、消息持久化机制、手动确认机制均由rabbitmq服务端保证的,一旦rabbitmq出现故障,例如rabbitmq所在服务器宕机,那么在宕机期间,rabbitmq无法保证消息不丢失;
②、存在效率问题,事务消息机制、confirm消息确认机制、消息持久化机制、手动确认机制会降低rabbitmq的运行速度,无法充分发挥rabbitmq的性能。
故如何实现消息入库以防止互联网项目中rabbitmq丢失消息是目前亟待解决的技术问题。
发明内容
本发明的技术任务是提供一种基于消息入库机制的防rabbitmq丢失消息系统及方法,来解决互联网项目中使用rabbitmq消息队列时出现的消息丢失的问题。
本发明的技术任务是按以下方式实现的,一种基于消息入库机制的防rabbitmq丢失消息系统,该系统包括,
消息入库模块,用于将产生的消息存入到redis中;其中,消息存入redis前,对消息进行预处理;
消息发送模块,用于将消息发送到rabbitmq中,根据消息发送成功或失败去redis中更改相应消息的状态;
消息消费模块,用于接收消息,进行消费;并根据消息消费成功或失败去redis中更改相应消息的状态;
定时任务处理模块,用于定时检查redis,判断是否有未发送成功以及为消费成功的消息:
若发现有未发送成功的消息,则通知生产者重新发送或者生成告警;
若发现有未消费成功的消息,则通知消费者重新消费或生成告警;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮云信息技术股份公司,未经浪潮云信息技术股份公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211692399.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种OPA激光雷达
- 下一篇:一种提高INS误差精度的方法