分布式事务—MQ最终一致性模型

https://www.bilibili.com/video/av23742194

XA、TCC、最终一致性、最大努力通知

只要是多个服务相互调用且都是涉及到持久化时,就需要解决一致性问题,无论是同库还是异库。

常见问题:服务A调用服务B,B事务提交成功,但是之后A回滚事务

 

最终一致性模型

发送时消息携带唯一ID。最终消费端因为会重发消息,所以一定要保证幂等性设计,通过补偿机制不断地尝试对超时消息重发再同步,从而保证最终一致,多次尝试失败记录等待人工干预。消费时保证幂等性设计且通过API检查消息状态。其设计是假定事务同步最终一定会成功,没有回滚(也可在补充机制中设计回滚策略),灵活性缺失。

方案1:有独立消息系统,需要向消息系统发送消息(带唯一标识),成功后再开始本地事务进行业务处理。通过超时补偿逻辑保证最终一致同步。各个服务间开启状态查询/更新API。消息系统可通过Redis、Mysql保存消息。

方案2:无独立消息系统,本地事务中保存消息信息并发送(带唯一标识),通过超时补偿逻辑保证最终一致同步。各个服务间开启状态查询/更新API。

具体逻辑:https://blog.csdn.net/shanchahua123456/article/details/84950628

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值