2pc、3pc、tcc
时间: 2023-09-26 16:12:04 浏览: 60
2PC是指两阶段提交协议(Two-Phase Commit),它是一种用于分布式事务的协议。在2PC中,有一个协调者和多个参与者,协调者负责协调各参与者的操作。2PC协议包括准备阶段和提交阶段。在准备阶段,协调者向参与者发送准备请求,参与者执行操作并将执行结果通知协调者。在提交阶段,协调者向参与者发送提交请求,参与者根据事务结果进行提交或回滚操作。然而,2PC存在数据不一致的问题,即协调者在发生故障时可能无法通知参与者进行回滚,从而导致数据不一致的情况发生。
3PC是指三阶段提交协议(Three-Phase Commit),它是对2PC的改进。3PC在2PC的基础上引入了超时机制,将准备阶段再次分为两个阶段,即CanCommit和PreCommit阶段。在CanCommit阶段,协调者向参与者发送询问消息,参与者根据当前状态回复同意或中止。在PreCommit阶段,协调者向参与者发送预提交消息,参与者执行预提交操作并将执行结果通知协调者。最后,在提交阶段,协调者向参与者发送提交或中止请求。3PC相对于2PC能够缓解数据不一致的问题,但并不能完全解决。
TCC是指试验-确认-取消协议(Try-Confirm-Cancel),它是一种分布式事务处理模式。TCC模式将整个事务拆分为三个阶段:试验阶段、确认阶段和取消阶段。在试验阶段,业务逻辑进行预处理并进行一些检查,以确保事务可以成功执行。在确认阶段,事务的所有参与者进行确认操作,如果所有参与者都确认成功,则事务执行成功。在取消阶段,如果有任何一个参与者确认失败,则事务执行取消操作,回滚之前的操作。TCC模式相对于2PC和3PC更加灵活,并且可以通过实现自定义的接口来适应不同的业务场景。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *3* [【分布式】分布式事务基础概念(2PC,3PC,TCC)](https://blog.csdn.net/bookssea/article/details/124359341)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *2* [理解2PC,3PC与TCC](https://blog.csdn.net/h_big_tiger/article/details/100139899)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]