分布式事务

分布式事务

  1. 主流的关系型数据库产品都是实现了XA接口,事务管理器和资源管理器之间使用XA协议,JTA(Java Transaction API)。
  2. TCC try comfirm cancel 。
  3. 本地消息表
    采用定时轮询扫描的方式,去检查消息表的数据。
  4. 消息队列
    采用时效性高的MQ,由对方订阅消息并监听,有消息时自动触发事件。
  5. mq事务消息
    RocketMQ
    第一阶段发送Prepared消息时,会拿到消息的地址,
    第二阶段执行本地事物,
    第三阶段通过第一阶段拿到的地址去访问消息,并修改状态。
    如果确认消息发送失败了,RocketMQ会定期扫描消息集群中的事物消息,
    这时候发现了Prepared消息,它会向消息发送者确认,
    Bob的钱到底是减了还是没减呢,RocketMQ会根据发送端设置的策略来决定是回滚还是继续发送确认消息。
    这样就保证了消息发送与本地事务同时成功或同时失败。
  6. 补偿机制
    只有当我们回调页面中输出了success字样或者标识业务处理成功相应状态码时,支付宝才会停止回调请求。
    否则,支付宝会每间隔一段时间后,再向客户方发起回调请求,直到输出成功标识为止。

https://www.cnblogs.com/huangying2124/p/11702761.html