电子商务网站建设运营网站 加域名
news/
2025/10/3 1:30:12/
文章来源:
电子商务网站建设运营,网站 加域名,一套网站设计多少钱,杂志网站建设事务的简单配置及使用 配置事务管理器声明队列生产者代码测试 RabbitMQ是基于AMQP协议实现的#xff0c;该协议实现了事务机制#xff0c;因此RabbitMQ也支持事务机制. SpringAMQP也提供了对事务相关的操作.RabbitMQ事务允许开发者确保消息的发送和接收是原子性的#xff0c… 事务的简单配置及使用 配置事务管理器声明队列生产者代码测试 RabbitMQ是基于AMQP协议实现的该协议实现了事务机制因此RabbitMQ也支持事务机制. SpringAMQP也提供了对事务相关的操作.RabbitMQ事务允许开发者确保消息的发送和接收是原子性的要么全部成功要么全部失败. 配置事务管理器 Configuration
public class RabbitTemplateConfig {//事务Bean(transRabbitTemplate)public RabbitTemplate transRabbitTemplate(ConnectionFactory connectionFactory){RabbitTemplate rabbitTemplate new RabbitTemplate(connectionFactory);//设置setChannelTransacted为truerabbitTemplate.setChannelTransacted(true); return rabbitTemplate;}//配置事务管理器Beanpublic RabbitTransactionManager rabbitTransactionManager(ConnectionFactory connectionFactory){return new RabbitTransactionManager(connectionFactory);}}
声明队列
Configuration
public class RabbitMQConfig {Bean(transQueue)public Queue transQueue(){return QueueBuilder.durable(Constant.TRANS_QUEUE).build();}
}
生产者代码
RestController
RequestMapping(/producer)
public class ProducerController {Resource(name transRabbitTemplate)private RabbitTemplate transRabbitTemplate;TransactionalRequestMapping(/trans)public String trans(){//1. rabbitTemplate.setChannelTransacted(true);设置事务属性为true//2. 开启Transactional注解//3. RabbitTransactionManagerSystem.out.println(trans test...);transRabbitTemplate.convertAndSend(,Constant.TRANS_QUEUE, trans test 1...);int num 5/0;transRabbitTemplate.convertAndSend(,Constant.TRANS_QUEUE, trans test 2...);return 消息发送成功;}}测试
下面基于我们编写的代码来进行一下简单的测试 加Transactional注解和不加Transactional注解 我们先把注解屏蔽掉调用接口 此时再看看我们RabbitMQ的管理界面可以看到第一条消息发送成功了 把消息删掉再加上Transactional注解再调用接口 可以看到此时我们的队列里就不会收到消息了
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/925474.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!