我在互联网上听说兔子妈妈不支持交易。
现在,就是说,spring框架为我们提供了一个兔子事务管理器:
这是其定义的片段:
<bean id="rabbitTransactionManager"
class="org.springframework.amqp.rabbit.transaction.RabbitTransactionManager">
<property name="connectionFactory" ref="connectionFactory" />
</bean>
所以我的问题是:
1)在方法上使用@transactional注释,事务管理器实际上保证了事务效果吗? 2)当兔子非跨国时,春天如何实现交易?
答案 0 :(得分:3)
Rabbit确实支持本地事务。例如,在事务中,如果您的消费者发生了某些事情,并且无法处理收到的消息,则消息将被发送回代理并且不被消费。
与其他代理(例如大多数基于JMS的代理)不同的是,Rabbit不支持分布式事务(XA转换)。这意味着在通过Rabbit发送消息并在数据库中保留一些数据时,您不能拥有相同的事务。