通过消息队列实现分布式事务

通过消息队列实现分布式事务

在这里插入图片描述
表设计:
生产者:账户余额表、事务记录表
消费者:账户余额表、消息记录表
生产者事务流程:
a:支付宝账户扣除100元
b:给事务记录表中新增一条事务记录 (a、b两步操作在同一个数据库中,可以保证事务一致性,同时成功,同时失败)
定时程序流程:
a:定时扫描生产者事务记录表中状态为未完成的记录,将未完成记录发送到消息队列中
b:将生产者事务记录表中的状态改为已完成
消费者事务流程:
a:从消息队列中获取记录
b:将消息中未完成记录的事务txId作为主键 报错到事务处理表中(防止由于消息队列故障,导致消息二次消费问题)
c:将余额宝账户增加100元(b、c两步操作在同一个数据库中,可以保证事务一致性,同时成功,同时失败)

发布了279 篇原创文章 · 获赞 97 · 访问量 59万+

猜你喜欢

转载自blog.csdn.net/u010838785/article/details/104455458
今日推荐