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