请教一个分布式事务的问题?

发布于 2022-09-12 02:44:17 字数 257 浏览 22 评论 0

有这样一个业务,分为三步:

  1. A 服务做一个 insert 。
  2. 通过 HTTP 向 B 服务发请求,B 服务做一个 update 。
  3. A 服务对 HTTP 请求的返回结果进行判断,如果 B 服务 update 失败,做一个 DELETE(删除之前的 insert )。

Q1:请问这算 2PC 吗?
Q2:算不算强一致性?
Q3:和 MQ 做分布式事务对比有什么优缺点?

谢谢!

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

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

发布评论

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

评论(1

再浓的妆也掩不了殇 2022-09-19 02:44:17

1、确实是字面意思上的两阶段提交了,但 2PC 不仅满足于此,还需要:

  • insert 是事务成功后 commit、失败 rollback 吗?如果不是,不是 2PC。
  • 某方宕机后,会互相阻塞等待本次事务完成吗?如果不是,不是 2PC。

2、如果宕机问题处理好了,这是最终一致;否则,压根没一致性。

3、扩展性差一些。以后再来个 B、C、D 乃至 Z 服务,也要加入本次事务中,你还要反过头来去改写服务 A 的代码吗?

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