分布式事务:消息最终一致性方案,消费方出现异常,是否只能进行补偿?
如上层业务系统为支付系统,下层业务系统为库存系统
如果支付完成走到库存这一块,但是遇到库存不足的情况。是否只能手动写补偿机制?
最后想问下,分布式事务有好的文章可以推荐下的嘛。谢谢!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
如上层业务系统为支付系统,下层业务系统为库存系统
如果支付完成走到库存这一块,但是遇到库存不足的情况。是否只能手动写补偿机制?
最后想问下,分布式事务有好的文章可以推荐下的嘛。谢谢!
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(2)
如果按照你图中的流程,那就需要引入分布式事务。
如果是基于XA协议(两阶段提交),这种叫做刚性事务,侵入性小,方案成熟,但是不适合高并发高性能的环境,因为会锁定全局资源。
可以考虑柔性事务,强调最终一致性。方案有最大努力送达、Saga、TCC(TCC需要业务方改造代码)。可以看下蚂蚁开源的Seeta。
相关的文章我比较喜欢的还是《未来架构:从服务化到云原生》里面9.4.2节,讲了分布式事务的基本理论,现有方案的对比等。博客看了一些但没有印象深刻的。(微信读书有无限卡的话可以免费阅读。整一大章节讲的是数据库。)
希望可以帮到你。
首先业务上肯定是下单成功才会去支付,下单时肯定要预留出这一个订单的量,如果不涉及第三方支付(只是本系统钱包),比较成熟的是两阶段提交方案