【项目亮点】大厂中分布式事务的最佳实践 问题产生->难点与权衡->解决方案->底层实现->应用案例
不断有同学问我大厂中实践分布式事务的问题,这里从分布式事务的产生,到强弱一致性与性能的权衡,再到最终落地的解决方案,再到实际的代码实现,再到我工作中实际使用SAGA模式的应用案例,一篇文章讲清楚.
问题的产生
83.7%分布式事务的产生都是因为拆分微服务导致的:
过去:
曾经在单体服务的时代,所有的数据库操作都是单体服务和mysql集群直接交互
比如电商中的下单操作,先更新订单,再扣减库存
订单和库存都在同一个数据库中,可以使用本地事务保证ACID特性
现状:
现在该服务拆分成了一大堆微服务,其中订单服务和库存服务成了两个服务
那么更新订单和扣减库存就成了两个RPC,数据也属于不同的数据库
这时候,如果更新订单成功了,扣减库存失败了(网络问题或者库存不足)
就会出现一致性问题
目标
分布式事务的目标就是让保证订单和库存数据的一致性
至于是
(回滚/补偿 还是重试)
(TCC型(又分为本地和远端,一般说的

本文探讨了分布式事务在微服务架构下的挑战,重点介绍了强一致性与性能的权衡,以及大厂为何更倾向于使用SAGA模式。作者分析了TCC和SAGA的优缺点,并提出使用本地事务表驱动MQ以解决一致性问题的解决方案。
最低0.47元/天 解锁文章
1436

被折叠的 条评论
为什么被折叠?



