3
Iv'e在互联网上听到rabbitMQ不支持交易。现在Spring rabbitMQ - 交易和交易管理器
,这么说,Spring框架为我们提供了一个兔子事务管理器:
这里是其定义的一个片段:
<bean id="rabbitTransactionManager"
class="org.springframework.amqp.rabbit.transaction.RabbitTransactionManager">
<property name="connectionFactory" ref="connectionFactory" />
</bean>
所以我的问题是:
1)不使用事务管理器的方法使用@transactional注释实际上保证事务效果? 2)当兔子是非跨国的时,春天如何实现交易?
请参阅http://www.rabbitmq.com/semantics.html和http://docs.spring.io/spring-amqp/docs/1.2.0.RELEASE/reference/html/amqp.html#d4e602。 –
正确,但请记住,兔子交易存在限制,如下文所述:http://www.rabbitmq.com/semantics.html但Spring AMQP将事务通道绑定到正常的Spring事务语义(如发布到侦听器容器线程上的兔子模板使用相同的通道/事务)。此外,Martin关于nacked消息到队列后面的引用中的注释已经过时;该行为在RabbitMQ中已更改,回滚消息现在位于队列的前端。我会修复文档。 –
更正“回滚信息”应为“拒绝信息”;没有消息回滚,它是将消息放回到队列(现在的前面)的消息拒绝。 –