TCC中如果try方法内部有多个sql操作,由于分库不能在一个事务完成怎么办?

发布于 2022-09-12 03:23:11 字数 107 浏览 18 评论 0

假如try方法内部是一批数据库插入和更新的操作,相关的表在不同的库上,所以不能做成一个本地事务,这种情况怎么办?
比如try方法操作后,有部分数据库操作提交,有部分没有,cancel也不好处理啊

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

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

发布评论

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

评论(2

ゞ花落谁相伴 2022-09-19 03:23:11

TCC的try阶段是尝试阶段,都成功后才则有TCC推动执行各个本地的confirm,会一直尝试。

这里如果你是单个应用写不同的数据库,这个不能叫分布式事务,而且本身设计层面也不应该这么做。分布式事务是一个应用调用多个其他应用共同组成事务,要么都成功,要么都失败。

岁月蹉跎了容颜 2022-09-19 03:23:11

try 方法里面可以按照正常的多数据库源调用,后面一个操作是否执行依赖前一操作的结果,做个判断,如果前一个操作失败,则直接异常。confirm 里面可以执行空方法,cancel 方法里面可以执行具体的回滚操作。个人认为想要看看你操作数据是什么的逻辑 ,来编排你的cancel方法。

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