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 "发送成功";
}
相关推荐
feathered-feathered6 小时前
Redis基础知识+RDB+AOF(面试)
java·数据库·redis·分布式·后端·中间件·面试
lang201509286 小时前
深入解析Kafka Broker核心读写机制
分布式·kafka
lang201509286 小时前
Kafka高水位与日志末端偏移量解析
分布式·kafka
Tadas-Gao7 小时前
GraphQL:下一代API架构的设计哲学与实践创新
java·分布式·后端·微服务·架构·graphql
lang201509287 小时前
Kafka副本管理核心:ReplicaManager揭秘
分布式·kafka·linq
GGBondlctrl10 小时前
【Redis】从单机架构到分布式,回溯架构的成长设计美学
分布式·缓存·架构·微服务架构·单机架构
编织幻境的妖10 小时前
Zookeeper在大数据集群中的作用详解
大数据·分布式·zookeeper
beijingliushao10 小时前
102-Spark之Standalone环境安装步骤-2
大数据·分布式·spark
Wang's Blog11 小时前
RabbitMQ: 消息可靠性保障机制深度解析与工程实践
rabbitmq
acrelgxy11 小时前
告别盲测,预见温度:安科瑞如何用无线技术革新变电站安全
分布式·安全·电力监控系统·智能电力仪表