分布式事务:消息最终一致性方案,消费方出现异常,是否只能进行补偿?

发布于 2022-09-11 23:57:21 字数 174 浏览 30 评论 0

如上层业务系统为支付系统,下层业务系统为库存系统
如果支付完成走到库存这一块,但是遇到库存不足的情况。是否只能手动写补偿机制?

最后想问下,分布式事务有好的文章可以推荐下的嘛。谢谢!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

缪败 2022-09-18 23:57:21

如果按照你图中的流程,那就需要引入分布式事务。
如果是基于XA协议(两阶段提交),这种叫做刚性事务,侵入性小,方案成熟,但是不适合高并发高性能的环境,因为会锁定全局资源。
可以考虑柔性事务,强调最终一致性。方案有最大努力送达、Saga、TCC(TCC需要业务方改造代码)。可以看下蚂蚁开源的Seeta。
相关的文章我比较喜欢的还是《未来架构:从服务化到云原生》里面9.4.2节,讲了分布式事务的基本理论,现有方案的对比等。博客看了一些但没有印象深刻的。(微信读书有无限卡的话可以免费阅读。整一大章节讲的是数据库。)
希望可以帮到你。

許願樹丅啲祈禱 2022-09-18 23:57:21

首先业务上肯定是下单成功才会去支付,下单时肯定要预留出这一个订单的量,如果不涉及第三方支付(只是本系统钱包),比较成熟的是两阶段提交方案

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文