[发明专利]一种基于RabbitMQ的消息推送方法在审
| 申请号: | 202010247669.6 | 申请日: | 2020-04-01 |
| 公开(公告)号: | CN111427711A | 公开(公告)日: | 2020-07-17 |
| 发明(设计)人: | 刘瑞;魏金雷;杨继伟;徐士强;张咏雪 | 申请(专利权)人: | 山东汇贸电子口岸有限公司 |
| 主分类号: | G06F9/54 | 分类号: | G06F9/54 |
| 代理公司: | 济南信达专利事务所有限公司 37100 | 代理人: | 郗艳荣 |
| 地址: | 250100 山东省济南市*** | 国省代码: | 山东;37 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 rabbitmq 消息 推送 方法 | ||
1.一种基于RabbitMQ的消息推送方法,其特征在于:对消息发送确认机制进行优化处理,具体优化如下:
第一,消息确认机制
通过设置触发setReturnCallback回调来防止交换机没找到队列就丢弃消息,通过回调告知用户检查问题;
第二,定时任务机制
通过定时任务拉取投递失败的消息,重新投递;
第三,生产者消费确认机制
在消费端通过AOP拦截和手动ACK保证多次消费的消费幂等性。
2.根据权利要求1所述的基于RabbitMQ的消息推送方法,其特征在于:所述定时任务机制中,通过设置定时任务和重新投递次数来定时拉取投递失败的消息并重新投递消息。
3.根据权利要求2所述的基于RabbitMQ的消息推送方法,其特征在于:所述定时任务机制中,每一条消息都和交换机RoutingKey绑定,所有消息重投共用一个定时任务。
4.根据权利要求1所述的基于RabbitMQ的消息推送方法,其特征在于:所述生产者消费确认机制中,消费者在消费消息时,如果消费者业务逻辑出现程序异常,则开启重试机制,并在底层使用AOP拦截;若消费者没有抛出异常,则自动提交事务。
5.根据权利要求4所述的基于RabbitMQ的消息推送方法,其特征在于:如果AOP使用异常通知拦截获取到程序异常,则自动实现补偿机制,将消息缓存到RabbitMQ服务器端;如果消费消息出现异常则根据抛出的异常选择合理的重试机制。
6.根据权利要求5所述的基于RabbitMQ的消息推送方法,其特征在于:若是因为调用第三方接口无法访问,则RabbitMQ自动重试;如果RabbitMQ重试失败,则通过日志记录和健康检查以及人工进行补偿。
7.根据权利要求5所述的基于RabbitMQ的消息推送方法,其特征在于:如果因为网络延迟传输中,消费者出现异常或者消费者延迟消费,会造成进行MQ重试补偿,为了避免在重试过程中造成重复消费,通过使用全局消息ID判断消费者是否消费过解决幂等性问题,并在消费成功后将ID和状态存在日志表中;当发生MQ重试补偿时,从日志表获取并判断此消息ID的状态即可。
8.根据权利要求1所述的基于RabbitMQ的消息推送方法,其特征在于:所述生产者消费确认机制中,确认消息被消费者消费完成后通知服务器将队列里面的消息清除;设置ACK为手动,未被ACK的消息会重新入队并被消费,可以更加灵活或人性化来处理业务逻辑代码,更加方便处理异常问题以及数据的返回处理,保证消息不被丢失。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东汇贸电子口岸有限公司,未经山东汇贸电子口岸有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010247669.6/1.html,转载请声明来源钻瓜专利网。





