rabbitmq 手动提交_SpringBoot整合RabbitMQ,常用操作

本文介绍三种常用操作,基于spring-boot-starter-amqp依赖

手动ack

work模式(能者多劳)

消息格式转换

手动ack

消息确认模式

在amqp协议中消息确认有两种模式

自动确认模式(automatic acknowledgement model)当消息代理将消息发送给应用后立即删除

显式确认模式(explicit acknowledgement model)待应用发送一个确认回执后再删除消息

而在spring-boot-starter-amqp,spring定义了三种

NONE 没有ack的意思,对应rabbitMQ的自动确认模式

MANUAL 手动模式,对应rabbitMQ的显式确认模式

AUTO 自动模式,对应rabbitMQ的显式确认模式

首先注意的是spring-amqp中的自动模式与rabbit中的自动模式是不一样的,其次,在spring-amqp中MANUAL 与 AUTO的关系有点类似于在spring中手动提交事务与自动提交事务的区别,一个是手动发送ack一个是在方法执行完,没有异常的情况下自动发送ack

代码实现

三个步骤

设置消费者的消息确认模式

手动确认/拒绝消息

设置消息拒绝策略

设置消费者的消息确认模式:

@Configuration

public class ListenerConfig {

@Bean("myListenerFactory")

public RabbitListenerContainerFactory myFactory(ConnectionFactory connectionFactory){

SimpleRabbitListenerContainerFactory containerFactory=

new SimpleRabbitListenerContainerFactory();

containerFactory.setConnectionFactory(connectionFactory);

//设置消费者的消息确认模式

containerFactory.setAcknowledgeMode(AcknowledgeMode.MANUAL);

return containerFactory;

}

}

手动确认/拒绝消息:

@Component

@RabbitListener(

containerFactory = "myListenerFactory",

bindings = @QueueBinding(

value = @Queue("myManualAckQueue"),

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值