rabbitmq实现手动确认

实现逻辑是:spring容器启动时创建监听容器工厂javaBean,工厂的acknowlegemodel属性设置为手动确认,后续通过该容器产生的所有代理对象都需要手动确认,然后通过对象的反射来调用process方法来完成业务逻辑。

但是这里存在一个问题 那就是所有通过该让容器产生的监听器都变成了手动确认,如果我想部分监听器手动确认,部分监听器自动确认呢?

那么新建两个容器工厂javabean,一个设置为自动 一个设置为手动,然后在消费者的@RabbitListener注解指定工厂类

 

这里就要说明用到了spring-messaging.jar  这个jar包是完成spring的消息协议(主要架构是channel(信道)-handle)。 rabbitmq中配置了rabbithandle注解。

消费端定义队列,交换机,路由键

配置rabbit发送消息到服务器的确认

 

增加测试方法,往消息队列服务器发送消息

 

 

 客户端:

将rabbitListenContainfactory创建的每个对象都设置为手动回复以及设置rabbit服务器连接

 

 

 

 

给队列设置监听,并在监听器做完业务逻辑后进行手动确认channel.basicack();

 一个是手动确认,一个是自动确认。

 测试:

 manqueue 需要手动确认 故消息被监听也未返回完成消费  womenqueue则自动确认

 

posted on   丶柚子  阅读(42)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
历史上的今天:
2018-06-19 Oracle创建表空间和表
2018-06-19 ora-12899解决方法
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示