『分布式事务』本地消息表

在这里插入图片描述

咱们今天聊一聊分布式事务的另一种方案,本地消息表:

  • A系统在自己本地一个事务里操作同时,插入一条数据到消息表

  • 接着A系统将这个消息发送到MQ中

  • B系统接收到消息之后,在一个事务里,往自己本地消息表里插入一条数据,同时执行其他的业务操作,如果这个消息已经被处理过了,那么此时这个事务会回滚,这样保证不会重复消费

  • B系统执行成功之后,就会更新自己本地消息的状态以及A系统消息表的状态

  • 如果B系统处理失败了,那么就不会更新消息表状态,那么此时A系统会定时扫描自己的消息表,如果没有处理的消息,会再次发送到MQ中,让B再次处理

  • 这个方案保证了最终一致性,哪怕B事务失败了,但A会不断重发消息,直到B那边成功为止

    这个方案说实话最大的问题就在于严重依赖数据库的消息表来管理事务啥的???这个会导致如果是高并发场景咋办?咋扩展?所以一般确实很少用
    在这里插入图片描述
    大家别急 ,我会一点点跟大家分享分布式事务,从最初的AX一直到可靠消息最终一致性。
    希望大家持续关系我的博客!!!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值