RabbitMQ的高级特性-事务

事务:RabbitMQ是基于AMQP协议实现的, 该协议实现了事务机制, 因此RabbitMQ也⽀持事务机制. SpringAMQP也提供了对事务相关的操作. RabbitMQ事务允许开发者确保消息的发送和接收是原⼦性的, 要么全部成功, 要么全部失败

配置事务管理器:

java 复制代码
@Bean
public RabbitTemplate rabbitTemplate(CachingConnectionFactory
connectionFactory){
RabbitTemplate rabbitTemplate = new RabbitTemplate(connectionFactory);
rabbitTemplate.setChannelTransacted(true);
return rabbitTemplate;
}

注:

  1. 不加 @Transactional , 会发现消息1发送成功

  2. 添加 @Transactional , 消息1和消息2全部发送失败

java 复制代码
@Transactional
@RequestMapping("/send")
public String send(){
rabbitTemplate.convertAndSend("","trans_queue", "trans test 1...");
int a = 5/0;
rabbitTemplate.convertAndSend("","trans_queue", "trans test 2...");
return "发送成功";
}
相关推荐
会算数的⑨9 分钟前
Kafka知识点问题驱动式的回顾与复习——(一)
分布式·后端·中间件·kafka
张小凡vip12 分钟前
Kafka--使用 Kafka Connect 导入/导出数据
分布式·kafka
回忆是昨天里的海22 分钟前
kafka概述
分布式·kafka
知识即是力量ol25 分钟前
初识 Kafka(一):分布式流平台的定义、核心优势与架构全景
java·分布式·kafka·消息队列
nbsaas-boot31 分钟前
Pipeline + Saga 分布式扩展规范
分布式
creator_Li36 分钟前
分布式IM聊天系统的消息可靠性
分布式·im
一条闲鱼_mytube1 小时前
《分布式事务实战完全指南》:从理论到实践
分布式
Ronin3051 小时前
持久化数据管理中心模块
开发语言·c++·rabbitmq·gtest
这周也會开心1 小时前
RabbitMQ知识点
分布式·rabbitmq
岁岁种桃花儿2 小时前
Kafka从入门到上天系列第三篇:基础架构推演+基础组件图形推演
分布式·kafka