首页 > 技术文章 > rabbitmq 事务消息

yszzu 2019-01-27 22:02 原文

事务消息主要用在发送方

在connection上加上事务属性, 发送方感知到本地事务执行失败, 需要通知broker将先前已经接收到的消息rollback,不要发给后面的消费者, 满足强一致性的要求

try{
   connection.setTx()

 doSend(); //本地DB事务
  connection.setCommit();

} catch(Excection e){
  // 记录没有发送成功
   doRollback();

}

broker一旦确认收到消息,消费者的事务处理就与生产者没有关系了, broker进行重试确保消费者一定能够收到消息, 消费者进行消息确认和幂等处理

推荐阅读