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

2020-05-15 10:17:31 +08:00
 MeloForsaken

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

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

谢谢!

3334 次点击
所在节点    程序员
24 条回复
lordofhollows
2020-05-15 15:02:53 +08:00
BV 号:BV1R7411t71W
《 2020 MIT 6.824 分布式系统》的第 12 节详细的讲解了分布式事物
xuanbg
2020-05-15 15:36:20 +08:00
1 、不算 2pc
2 、不存在 2pc 或 3pc 模式的分布式事务
figael
2020-05-15 16:49:18 +08:00
@pisc
感谢老哥指正
---
1: 不是 2pc,更多是 TCC (如果有预冻结操作) 或 Saga
2:分布式事务分为强一致性,顺序一致性,弱一致性等,理论上延时依次递减,需根据实际业务选择不同实现方式。
joesonw
2020-05-15 17:28:29 +08:00
2pc 要保存 commit 状态的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/671900

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX