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 "发送成功";
}
相关推荐
2501_9418705616 小时前
多语言微服务架构下的分布式事务管理与最终一致性实践
rabbitmq
2501_9418787416 小时前
智能推荐系统与多语言微服务实现:Python、Java、C++与Go全栈开发实战
rabbitmq
2501_9418091419 小时前
Python在高并发互联网系统开发中的架构设计与性能优化全流程实践分享
rabbitmq
2501_9411458519 小时前
基于 Node.js 与 NestJS 构建高并发微服务与实时 API 系统实践分享
rabbitmq
2501_9411471120 小时前
Python大数据处理实战:异步IO与协程高效数据解析代码解析
rabbitmq
2501_9418798120 小时前
多语言微服务架构下的微服务灰度发布与蓝绿部署实践
rabbitmq
2501_941884611 天前
能城市管理系统开发与多语言微服务实践:Python、Java、C++与Go全栈实现解析
rabbitmq
每天进步一点_JL1 天前
事务与消息中间件:分布式系统中的可见性边界问题
分布式·后端
2501_941877981 天前
Python在微服务高并发异步分布式配置中心与动态参数管理架构中的实践
rabbitmq
静若繁花_jingjing1 天前
ZooKeeper & Nacos
分布式·zookeeper·云原生