天天看点

RabbitMQ之消息确认 - AMQP 事务机制

1 服务端确认 - Transaction模式

注意,此事务非数据库的事务概念!
RabbitMQ之消息确认 - AMQP 事务机制
//将channel设置成事务模式
- channel.txSelect();
//提交事务
- channel.txCommit();
//事务回滚
- channel.txRollback();      

当消息的发布者在将消息发送出去之后,消息到底有没有正确到达broker代理服务器呢?如果不进行特殊配置的话,默认情况下发布操作是不会返回任何信息给生产者的,也就是默认情况下我们的生产者是不知道消息有没有正确到达broker的,如果在消息到达broker之前已经丢失的话,持久化操作也解决不了这个问题,因为消息根本就没到达代理服务器,你怎么进行持久化,那么这个问题该怎么解决呢?

RabbitMQ为我们提供了两种方式:

方式一:通过AMQP事务机制实现,这也是从AMQP协议层面提供的解决方案;

方式二:通过将channel设置成confirm模式来实现;

AMQP的事务模式是怎么使用的:

继续阅读