spring与RabbitMQ整合 消费者消费不到消息 重启才能消费到的问题解决
来源:互联网 发布:golang和go的区别 编辑:程序博客网 时间:2024/06/09 18:54
RabbitMQ是当前一个挺火的消息队列中间件 相比ActiveMQ 消息更不容易丢失
我之前用的是ActiveMQ 后边有的时候会莫名其妙的收不到消息 项目紧后边也没时间排查 经朋友的推荐下 换了RabbitMQ 后边用着也没啥问题
今天 的RabbitMQ 突然就出了问题 生产者发送消息 消费者监听不到 消费者重启才能接收到 这样的情况肯定不行 项目上线的话要是出现这种问题影响很大的
进入RabbitMQ的监控中心 登录 在queue里边找到自己的queue 进入 在里边可以看到消息发送情况
昨天我看了一下我的queue监控 Unacked是1以上 ready是1以上 ready好像是未消费消息
网上查了一下 好像说消息未确认 但是却消费了消息 这时候消息堵塞 不知情况如何 先记录一下
<rabbit:listener-container connection-factory="connectionFactory" acknowledge="auto"> <rabbit:listener ref="searchListenner" queues="coursequeue" response-routing-key="coursequeue"/> </rabbit:listener-container>
查看了我的spring配置文件 我当时的acknowledge为auto 接收到消息后自动确认消息 于是就在想 是不是确认不成功了
于是乎 在网上查了手动确认的资料
1.在rabbitmq整合spring的配置文件中 把下述配置中的acknowledge改为manual
<rabbit:listener-container connection-factory="connectionFactory" acknowledge="manual"> <rabbit:listener ref="searchListenner" queues="coursequeue" response-routing-key="coursequeue"/> </rabbit:listener-container>
2.监听器继承ChannelAwareMessageListener 然后重写onMessage 对消息进行手动确认
@Component("searchListenner")public class SearchListenner implements ChannelAwareMessageListener { @Override public void onMessage(Message message, Channel channel) throws Exception { try { channel.basicAck(message.getMessageProperties().getDeliveryTag(), false);//这个就是消息确认的语句 再往下边写自己的逻辑就好 System.out.println(message.getBody()); } catch (Throwable e) { getLog().error(e.getMessage(), e); } }}
经过上边的操作 问题解决
0 0
- spring与RabbitMQ整合 消费者消费不到消息 重启才能消费到的问题解决
- RabbitMQ与Spring整合之消息消费方
- Spring整合activemq,实现单消费者消费
- Spring集成rabbitMQ监听消费队列消息
- rabbitmq消费消息的两种方式
- Spring RabbitMQ 异步消费
- spring多线程消费消息
- 消费RabbitMQ时的注意事项,如何禁止大量的消息涌到Consumer
- [问题记录]解决RabbitMQ消息丢失与重复消费问题
- kafka中消费者消费消息是阻塞的
- ActiveMQ和spring整合,订阅主题和消息消费
- RabbitMQ消息队列+spring监听mq服务器,接收消费mq消息
- RabbitMQ消息队列+spring监听mq服务器多个ip,接收消费mq消息(三)
- RabbitMQ消息队列+spring监听mq服务器多个ip,接收消费mq消息(二)
- MQTT和spring的整合(消费端)
- redisMQ消费消息的机制
- php的rabbitmq队列的消费代码
- 消息队列 RabbitMQ 与 Spring 整合使用
- oracle权限
- ES权威指南_04_aggs_01 High-Level Concepts
- 字符串匹配的KMP算法彻底理解
- ES权威指南_04_aggs_02 Aggs Test-Drive(学习方法:测试驱动)
- SQL2005 数据库 附加失败
- spring与RabbitMQ整合 消费者消费不到消息 重启才能消费到的问题解决
- 访问原理及HTTP协议
- html 盒子模型基础(单位,边框,内边距,外边距)(一)
- centos中忘记mysql密码
- python绘图小记
- ASP.NET Web Forms – 教程
- Android自定义控件实例(1)——自定义控件之组合控件,包含书签的pdf阅读器
- ES权威指南_04_aggs_03 Building Bar Charts(柱状、直方图)
- 设计模式解析之代理模式