请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

2PC确认提交一方出错,另外一方已提交成功是否会进行回滚?

2PC提交问题:
第一步:A告知事务管理者锁定成功
第二步:B告知事务管理者锁定成功
第三步:事务管理者通知俩个可以提交了,假如A提交成功了,但是B提交失败了,B提交返回给事务管理者告知提交失败,但此时A已经提交成功了,问题1:请问A还会回滚成功吗?

正在回答

1回答

在分布式事务中,确保多个参与者的数据一致性是一个相对复杂的问题。根据你的描述,A和B都向事务管理者报告锁定成功,而事务管理者通知两个参与者可以提交。然而,在这种情况下,如果B提交失败并向事务管理者报告,但A已经提交成功,那么A是否会回滚成功取决于所使用的分布式事务协议。

如果使用的是两阶段提交(Two-Phase Commit,2PC)协议,那么答案是A会回滚成功。在2PC协议中,事务管理者会先向所有参与者发出预提交请求,然后等待参与者的响应。只有当所有参与者都响应“同意”时,事务管理者会向所有参与者发出提交请求。如果有一个参与者返回“拒绝”或者发生超时,事务管理者会向所有参与者发出回滚请求,包括已经提交成功的A。所以在这种情况下,A会回滚。


2 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信