rabbitmq实现手动确认
实现逻辑是:spring容器启动时创建监听容器工厂javaBean,工厂的acknowlegemodel属性设置为手动确认,后续通过该容器产生的所有代理对象都需要手动确认,然后通过对象的反射来调用process方法来完成业务逻辑。
但是这里存在一个问题 那就是所有通过该让容器产生的监听器都变成了手动确认,如果我想部分监听器手动确认,部分监听器自动确认呢?
那么新建两个容器工厂javabean,一个设置为自动 一个设置为手动,然后在消费者的@RabbitListener注解指定工厂类
这里就要说明用到了spring-messaging.jar 这个jar包是完成spring的消息协议(主要架构是channel(信道)-handle)。 rabbitmq中配置了rabbithandle注解。
消费端定义队列,交换机,路由键
配置rabbit发送消息到服务器的确认
增加测试方法,往消息队列服务器发送消息
客户端:
将rabbitListenContainfactory创建的每个对象都设置为手动回复以及设置rabbit服务器连接
给队列设置监听,并在监听器做完业务逻辑后进行手动确认channel.basicack();
一个是手动确认,一个是自动确认。
测试:
manqueue 需要手动确认 故消息被监听也未返回完成消费 womenqueue则自动确认
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
2018-06-19 Oracle创建表空间和表
2018-06-19 ora-12899解决方法