Spring rabbitMQ - 交易和交易经理

时间:2013-12-12 10:50:39

标签: spring transactions rabbitmq spring-amqp

我在互联网上听说兔子妈妈不支持交易。

现在,就是说,spring框架为我们提供了一个兔子事务管理器:

这是其定义的片段:

<bean id="rabbitTransactionManager"
    class="org.springframework.amqp.rabbit.transaction.RabbitTransactionManager">
    <property name="connectionFactory" ref="connectionFactory" />
</bean>

所以我的问题是:

1)在方法上使用@transactional注释,事务管理器实际上保证了事务效果吗? 2)当兔子非跨国时,春天如何实现交易?

1 个答案:

答案 0 :(得分:3)

Rabbit确实支持本地事务。例如,在事务中,如果您的消费者发生了某些事情,并且无法处理收到的消息,则消息将被发送回代理并且不被消费。

与其他代理(例如大多数基于JMS的代理)不同的是,Rabbit不支持分布式事务(XA转换)。这意味着在通过Rabbit发送消息并在数据库中保留一些数据时,您不能拥有相同的事务。