分布式事务(1)---2PC和3PC原理
分布式事务(1)---2PC和3PC原理 分布式事物基本理论 :基本遵循CPA理论,采用柔性事物特征,软状态或者最终一致性特点保证分布式事物一致性问题。 分布式事物常见解决方案 : 2PC两段提交协议 3PC三段提交协议(弥补两端提交协议缺点) TCC或者GTS(阿里) 消息中间件最终一致性 使用LCN解决分布式事物,理念“LCN并不生产事务,LCN只是本地事务的搬运工”。 一、两阶段提交(2PC) 两阶段提交又称 2PC ,2PC是一个非常经典的 强一致、中心化的原子提交协议 。 这里所说的中心化是指协议中有两类节点:一个是中心化 协调者节点 (coordinator)和 N个参与者节点 (partcipant)。 两个阶段 :第一阶段: 投票阶段 和第二阶段: 提交/执行阶段 。 举例 订单服务A ,需要调用 支付服务B 去支付,支付成功则处理购物订单为待发货状态,否则就需要将购物订单处理为失败状态。 那么看2PC阶段是如何处理的 1、第一阶段:投票阶段 第一阶段主要分为3步 1) 事务询问 协调者 向所有的 参与者 发送 事务预处理请求 ,称之为 Prepare ,并开始等待各 参与者 的响应。 2) 执行本地事务 各个 参与者 节点执行本地事务操作,但在执行完成后并 不会真正提交数据库本地事务 ,而是先向 协调者 报告说:“我这边可以处理了/我这边不能处理”。. 3)