blog.hongxi.org

Java生态研究 hongxi.org

分布式事务简单处理

解决分布式事务最简单的方案就是向前或向后,即补充或回滚。

业务逻辑有如下三步:

  1. 调用A服务冻结金额

  2. 调用B服务增加额度

  3. 记录数据库

进行到第2步失败 -> 写task,回滚第1步(通知A服务方去回滚)

进行到第3步失败 -> 写task,从A/B服务处同步数据至数据库

还有一种方案就是写task,转化为本地事务,由task去执行上述三步,失败则重试task,当然,A/B服务都有幂等性处理。这种方案的缺点之一,是假定了参数合理的情况下,服务最终一定会执行成功,缺点之二是看起来不自然。

复杂的方案就是TCC方案,参见蚂蚁金服的DTS

阅读更多
版权声明:欢迎分享技术,转载请声明。更多技术见 blog.hongxi.org https://blog.csdn.net/javahongxi/article/details/79501289
文章标签: 分布式事务
个人分类: Dubbo
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

分布式事务简单处理

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭