解决分布式事务常用的3种实现方式

解决分布式事务常用的3种实现方式

1、xa : XA两阶段提交的分布式事务管理器, 基于 ByteJTA实现的分布式解决方案。在此感谢作者的奉献 坐标

2、tcc : TCC机制的分布式事务管理器, 基于 ByteTCC实现的分布式解决方案。在此感谢作者的奉献 坐标

3、msg : 基于可靠消息实现最终一致性,由本人搭建。消息中间件使用 rocketmq。 坐标

1. order-facade 订单接口
2. order-service 订单服务
3. pay-facade 支付接口
4. pay-service支付服务
5. tx-msg消息表 操作公用组件,order-service、pay-service 依赖 tx-msg 保证这两个服务对消息的操作和业务的操作在一个事务里。(不可采用远程调用,否则有出现分布式事务)
6. 当发起支付流程后,调用pay-service操作业务(扣钱或其他),同时发送一个事务消息,且同时记录事务消息(该消息事务状态未确定)。
7. order-service 收到消息消费时操作业务(修改订单状态),同时记录消息 这两者在一个事务环境。
8. 定时比较 事务消息,和已消费的消息。将超时且没有消费的事务消息重发。
9. 实现最终数据一致。