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 "发送成功";
}
相关推荐
敖正炀6 小时前
高并发系统的降级预案与容错策略
分布式·架构
敖正炀6 小时前
稳定性监控与告警体系:SLI/SLO/SLA 实践
分布式·架构
敖正炀7 小时前
故障演练与混沌工程:ChaosBlade 到 Litmus
分布式·架构
敖正炀7 小时前
全链路压测与容量规划方法论
分布式·架构
敖正炀7 小时前
限流算法深度与 Guava/Sentinel 源码:从单机令牌桶到分布式滑动窗口的流量防护体系
分布式·架构
山屿落星辰11 小时前
hixl - 让分布式训练“零拷贝“通信
分布式
逍遥德13 小时前
SpringBoot自带TaskScheduler 接口使用详解:(02)微服务多实例模式下,爆发任务重复执行问题
spring boot·分布式·后端·微服务·中间件
Solis程序员14 小时前
基于 Outbox 事务表 + Canal 监听+kafka+多级缓存:高并发社交关注系统全链路架构设计
分布式·kafka·linq
phltxy14 小时前
Redis集群:分布式高可用存储方案
数据库·redis·分布式
二宝哥14 小时前
大数据之安装zookeeper
大数据·分布式·zookeeper