请教一个分布式事务的问题?
有这样一个业务,分为三步:
- A 服务做一个 insert 。
- 通过 HTTP 向 B 服务发请求,B 服务做一个 update 。
- A 服务对 HTTP 请求的返回结果进行判断,如果 B 服务 update 失败,做一个 DELETE(删除之前的 insert )。
Q1:请问这算 2PC 吗?
Q2:算不算强一致性?
Q3:和 MQ 做分布式事务对比有什么优缺点?
谢谢!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
1、确实是字面意思上的两阶段提交了,但 2PC 不仅满足于此,还需要:
2、如果宕机问题处理好了,这是最终一致;否则,压根没一致性。
3、扩展性差一些。以后再来个 B、C、D 乃至 Z 服务,也要加入本次事务中,你还要反过头来去改写服务 A 的代码吗?