首页 > 其他分享 >rabbitmq实现手动确认

rabbitmq实现手动确认

时间:2024-06-19 17:32:01浏览次数:19  
标签:容器 监听器 手动 确认 rabbitmq 设置

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

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

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

 

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

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

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

 

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

 

 

 客户端:

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

 

 

 

 

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

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

 测试:

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

 

标签:容器,监听器,手动,确认,rabbitmq,设置
From: https://www.cnblogs.com/UUUz/p/18256771

相关文章

  • 采用java语言+Redis+RabbitMQ开发的 门诊his系统源码 一站式的门诊his系统 门诊业务流
    采用java语言+Redis+RabbitMQ开发的门诊his系统源码一站式的门诊his系统门诊业务流程医院信息系统(HIS系统)门诊业务是医院信息化建设的重要组成部分之一,它涵盖了医院门诊部门涉及的各项业务。HIS系统门诊业务的实施,可以实现医院门诊业务的信息化管理和数据化处理,提高医疗服......
  • 企业邮箱大附件无法上传?无法确认接收状态?这样解决就行!
    Outlook邮箱作为最常用的邮箱系统,被全世界企业采用作为内部通用沟通方式,但Outlook邮箱却有着明显的使用缺陷,如邮箱大附件上传障碍及附件接收无提示等。1、企业邮箱大附件无法上传Outlook企业邮箱大附件的上传上限一般是50M,这就导致邮箱仅能支撑消息类、文字类内容,对于图纸、音......
  • RabbitMQ直连交换机(Direct)
    直连交换机(Direct)指定交换机模式为直连channel.exchangeDeclare(EXCHANGE_NAME,BuiltinExchangeType.DIRECT);publicclassDirectExchange{publicstaticfinalStringEXCHANGE_NAME="direct_exchange_test";publicstaticvoidmain(String[]args)......
  • 快团团大团长如何手动发放帮卖团长的佣金?
    一、功能说明若团长在设置帮卖时,设定帮卖团长的佣金结算方式为“手动结算”时,当帮卖团长成功帮卖后,团长需要手动发放帮卖佣金。二、具体设置方法1、如何设置手动发放帮卖佣金?在开团时选择“复制我的团进行帮卖”,进入复制帮卖设置后,将佣金的发放方式选择为“手动发放”2......
  • 5分钟带你了解RabbitMQ的(普通/镜像)集群
    前言让我们深入探讨RabbitMQ的集群配置,了解各种集群模式的利弊。本次讨论的重点是帮助您快速理解RabbitMQ集群的运作方式,以及选择最适合您需求的模式。好的,话不多说。在RabbitMQ中,即使只有一个节点,该节点的服务也会被作为一个集群来处理。这意味着单节点系统也遵循集群架构的规范......
  • RabbitMQ
    RPCRPC(远程过程调用),简单来说,就是一个进程A向另外一个进程B请求服务。进程A调用进程B的服务,就好像在调用自己进程的服务方法一样,无需关心内部的实现细节。传统的进程之间通信,是由服务端监听在某个端口,客户端进程通过远程过程调用(RPC)方式和服务端进程进行通信,这种通信方式,当消......
  • “RabbitMQ入门指南:从入门到起飞,这一篇就够!打造高效消息通信系统的第一步“。
    1.前言        RabbitMQ是一个开源的消息代理软件,它实现了高级消息队列协议(AMQP)的标准,并用Erlang语言编写。作为消息代理,RabbitMQ接收、存储和转发消息,帮助应用程序之间实现异步通信。它提供了一个强大而灵活的消息传递机制,可以在分布式系统中可靠地传递消息,确保消息......
  • springboot rabbitmq如何保证消息顺序消费
    很多时候,消息的消费是不用保证顺序的,比如借助mq实现订单超时的处理。但有些时候,业务中可能会存在多个消息需要顺序处理的情况,比如生成订单和扣减库存消息,那肯定是先执行生成订单的操作,再执行扣减库存的操作。那么这种情况下,是如何保证消息顺序消费的呢?首先,为了效率,我们可以设置......
  • RabbitMQ-如何保证消息不丢失
    RabbitMQ常用于异步发送,mysql,redis,es之间的数据同步,分布式事务,削峰填谷等.....在微服务中,rabbitmq是我们经常用到的消息中间件。它能够异步的在各个业务之中进行消息的接受和发送,那么如何保证rabbitmq的消息不丢失就显得尤为重要。首先要分析问题,我们就要明确rabbitmq在什么时......
  • Dijkstra 算法的手动分析
    目录Dijkstra算法step0.初始状态step1.第一轮step2.第二轮step3.第三轮step4.第四轮Dijkstra算法以下面有向图为例:graphLRV0((V0))--10-->V1((V1))V0((V0))--5-->V4((V4))V1((V1))--2-->V4((V4))V4((V4))--3-->V1((V1))V1((V1))--1-->V2((V2)......